前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >利用Caddy替代nginx提供web服务

利用Caddy替代nginx提供web服务

作者头像
IT不难
发布2024-12-23 09:11:39
发布2024-12-23 09:11:39
14000
代码可运行
举报
文章被收录于专栏:IT不难技术家园
运行总次数:0
代码可运行

前言

发现了一款新的web服务器Caddy,看介绍使用和配置都非常简单就尝试一下。

l4zdv65c.png
l4zdv65c.png

部署

系统直接安装

基于AlmaLinux9版本

代码语言:javascript
代码运行次数:0
复制
dnf install 'dnf-command(copr)'
dnf copr enable @caddy/caddy
dnf install caddy

docker方式安装

参考: docker和docker-compose一键安装脚本

docker-compose.yml

代码语言:javascript
代码运行次数:0
复制
version: "3.8"

services:
  caddy:
    image: caddy:latest
    restart: always
    ports:
      - '80:80'
      - '443:443'
    environment:
      - 'SET_CONTAINER_TIMEZONE=true'
      - 'TZ=Asia/Shanghai'
    volumes:
      - ./conf:/etc/caddy
      - /opt/www/dl:/opt/www/dl
      - /var/log/caddy:/opt/logs
    networks:
      - caddy_net

networks:
  caddy_net:

Caddyfile配置

代码语言:javascript
代码运行次数:0
复制
:801 {
  encode zstd gzip
  root * /opt/res
  file_server {
      browse
  }
}
代码语言:javascript
代码运行次数:0
复制
webzhan.xyz {
  tls admin@webzhan.xyz
  encode gzip
  log {
      output file  /opt/logs/access.log
  }
  header / {
      Strict-Transport-Security "max-age=31536000;includeSubdomains;preload"
  }

  ## HTTP 代理配置
  reverse_proxy  fmail:3000
}
代码语言:javascript
代码运行次数:0
复制
v.webzhan.xyz {
  tls admin@webzhan.xyz
  encode gzip
  log {
      output file  /opt/logs/v_access.log
  }

  reverse_proxy 172.23.0.1:81

  file_server

  handle_errors {
      root * /etc/caddy/error
      rewrite * /error.html
      templates
      file_server
  }
}
代码语言:javascript
代码运行次数:0
复制
v.webzhan.xyz {
  root * /www/web/v/
  tls admin@webzhan.xyz
  encode gzip
  log {
      output file  /opt/logs/v_access.log
  }

  php_fastcgi php:9000 {
     split .php
     index index.php
  }

  file_server

  handle_errors {
      root * /opt/caddy/error
      rewrite * /error.html
      templates
      file_server
  }
}

使用场景

反向代理wordpress

代码语言:javascript
代码运行次数:0
复制
w.webzhan.xyz:80 {
  #tls admin@webzhan.xyz
  #header / {
  #    Strict-Transport-Security "max-age=31536000;includeSubdomains;preload"
  #}

  encode gzip
  log {
      output file  /opt/logs/w.log
  }
  ## HTTP 代理配置, ttrss服务IP地址+端口
  reverse_proxy  web:81 {
    header_up Host {host}
        header_up X-Real-IP {remote}
        header_up X-Forwarded-For {remote}
    header_up X-Forwarded-Port {server_port}
        header_up X-Forwarded-Proto  {scheme}
  }
}

chrome浏览器清理https自动跳转

  • 浏览器地址栏输入 "chrome://net-internals/#hsts"
  • 通过 "Domain Security Policy"删除即可
lcqadpe1.png
lcqadpe1.png

直接使用caddy+php

代码语言:javascript
代码运行次数:0
复制
w.webzhan.xyz {
  tls admin@webzhan.xyz
  encode gzip
  root * /www/web/wp
  log {
      output file  /opt/logs/w.log
  }
  php_fastcgi php:9000 {
     # some php_fastcgi-specific subdirectives
     split .php
     index index.php
  }
  file_server
}

特殊目录设置访问密码

代码语言:javascript
代码运行次数:0
复制
docker exec -it vlive_caddy_1 sh
caddy hash-password
代码语言:javascript
代码运行次数:0
复制
v.webzhan.xyz {
  tls admin@webzhan.xyz
  encode gzip
  root * /www/web/v
  log {
      output file  /opt/logs/v.log
  }
  #header / {
  #    Strict-Transport-Security "max-age=31536000;includeSubdomains;preload"
  #}

  ### HTTP 代理配置
  #reverse_proxy  web:80
  php_fastcgi php:9000 {
     # some php_fastcgi-specific subdirectives
     split .php
     index index.php
  }
  file_server

  #错误处理
  handle_errors {
      root * /www/web/err
      rewrite * /error.html
      templates
      file_server
  }

  #访问认证
  basicauth /p/* {
      vlive  $2a$14$DIjtbTxbUSZHfHJUrjuU9.45SlrcwICIXNVSwVxehsnHhTXBBNNsi
  }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年06月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 部署
    • 系统直接安装
    • docker方式安装
    • docker-compose.yml
    • Caddyfile配置
  • 使用场景
    • 反向代理wordpress
    • chrome浏览器清理https自动跳转
    • 直接使用caddy+php
    • 特殊目录设置访问密码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档