(原) 服务器使用Caddy代替Nginx,本站已支持HTTP3

原创文章,请后转载,并注明出处。

正将服务器使用的Nginx换为Caddy。原因:

1、自动HTTPS,轻松

2、配置简单,可API配置

3、试图通过它来实现动态域名解析,将它里的Pi3服务器映射出来使用。

4、Caddy是Go开发的,支持插件,可以开发出更多实用功能。

5、普通应用,不存在并发之类的太大区别。

6、QUIC即HTTP3试用。

7、干净、跨平台

需要观察:

1、访问者IP获取

另外

https://gf.dev/http3-test网站检查,本站已支持HTTP3的H3-29版本协议

其实只是在配置文件中添加了几句

{
    servers :443 {
        protocol {
            experimental_http3
        }
    }
}

我也对官网的文档作了翻译(机翻加人改): Caddy中文文档

对于golang开发的https服务,可以还原为http服务,由caddy提供https。


2021.11.6

需求的第3点很简。

通过Caddy定义的Token,可以通过HTTP的方式更改配个配置里面的IP地址。

现在的Caddy只能本地API,仔细看看如何远程安全API。

如果本身不能实现外网API,只能另外开发插件完成。


2021.11.7

{
    admin 0.0.0.0:12114 {
        origins 0.0.0.0        
    }
}    

在全局配置中添加如上配置,允许了所有IP访问localhost:2019,即用于控制。

当然,这是很不安全的,暂时没有发现有安全“钥匙”。

因为使用了VPN,所以可以只供内网修改:

    admin 192.168.1.10:12121 {
        origins 192.168.1.*
    }

暂时连开发都省了,接下来是客户端的POST,脚本应该就可以完成。

通过命令行获取外网IP

$ curl ip.sb
$ curl cip.cc
$ curl ifconfig.me
$ curl icanhazip.com
$ curl ident.me
$ curl ipecho.net/plain 
$ curl trackip.net/ip

$ curl ip.cn
$ curl myip.ipip.net

修改的脚本就比较简单了

#!/bin/bash
globalAdd=$(curl -s icanhazip.com)
echo "WanIP:" $globalAdd
curl http://192.168.8.15:12121/config/apps/http/servers/srv0/routes/3/handle/0/routes/0/handle/0/upstreams/0/dial \
-X POST \
-H "Content-Type: application/json" -d '"'$globalAdd':8181"'

2021.11.7

不知道为什么使用外网地址不能访问内容,使用内网地址就可以。

于是想到了不修改Caddyfile,而直接使用vpn内网地址,成功显示内容。

这也意味着我可以将移动宽带中的Pi4放到公网中。

相关文章