caddy服务器使用

关于caddy的优点网上一搜一大把,这里就不说了,咱们主要说一下怎么使用。
也可以看看这位大佬的文章,受益颇丰

安装:

  • 由于go语言特性,直接下载二进制文件就可以用。下载地址~

测试&运行:

  1. 命令运行caddy.\caddy.exe run
  2. 浏览器请求http://localhost:2019/config/
  3. 如果返回一大串json类型的数据,就说明已经成功了
  • 但是这样提供不了任何有用的服务
  • 需要在caddy同目录下创建一个caddy的配置文件Caddyfile,注意没有任何后缀
  • Caddyfile里添加一个配置
    :9033 {
    	respond "Hello, caddy!"
    }
    
  • 先关闭命令窗口,结束服务
  • 使用.\caddy run -config Caddyfile命令重新运行caddy
  • 然后访问http://127.0.0.1:9033/页面上会显示 Hello, caddy!

常用命令:

  • run命令:.\caddy run --config Caddyfile

    • 需要 Caddfile配置文件在caddy同一目录下,否则需指定Caddyfile路径
    • eg:caddy run --config ./path/Caddyfile
    • run 会运行一个前台caddy进程,直到你使用 ctrl+c 或者关闭终端才退出
  • start命令:.\caddy run --config Caddyfile

    • start 命令的使用 run 一样,不同的是 start 会启动一个在后台运行的caddy
  • stop命令:caddy stop

    • 使用 start 命令启动caddy的情况下,可以使用 stop 命令退出caddy
  • 检查配置文件格式是否正确caddy validate --config Caddyfile

    • 成功返回Valid configuration
    • 类似nginx中的nginx -t命令
  • reload命令:.\caddy reload --config Caddyfile

    • 重载配置,修改Caddyfile文件之后使用该命令使caddy热重载

配置文件Caddyfile:

  1. 在caddy同级目录下,新建名称为Caddyfile的文件,无后缀且文件名称必须是Caddyfile
  2. caddy所有的配置都写在Caddyfile文件中
  3. 注释使用#
  • 配置一个简单的web服务

     # 这是一个简单的服务
     :80 {
      	 respond "Hello, Caddy!"
     }
    
  • 反向代理:

        example.com {
            reverse_proxy localhost:8888
        }
    
  • 代理匹配的请求:

    reverse_proxy /api/* {
    	to 127.0.0.1:9000
    }
    
  • 静态文件服务:

    example.com {
      root * /var/www/myweb
      file_server 
    }
    
  • 一个比较完整的配置示例

    	{  # 全局配置块
    		# 配置 Caddy 的管理接口(可以使用caddy的API修改配置)
    		admin 127.0.0.1:2019
    		# 日志打印
    		log {
                   output file ./log/caddy.log
                   format json
    	      	   level info
       		 }
    	}
    	# 域名
    	example.com { 
    		# API请求
    		handle_path /demo/* {
    			reverse_proxy 127.0.0.1:8080 {
    				header_up Host {host}
    				header_up X-Real-IP {remote}
    				header_up X-Forwarded-For {remote}
    			}
    		}
    		# API请求
    		handle_path /docker/* {
    			reverse_proxy 127.0.0.1:8081 {
    				header_up Host {host}
    				header_up X-Real-IP {remote}
    				header_up X-Forwarded-For {remote}
    			}
    		}
    
    
    		# 静态文件位置
    	    root * /var/www/html
    	    file_server
    }
    

其他内容:

备注信息:

  • 默认只要设置了有效的域名(比如baidu.com)caddy会自动为你申请tls证书的
  • 证书位置是不变的,更新证书后会重置旧的

ps:后续还会写caddyAPI的使用
ps:后续还会写caddy-coraza的WAF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值