DDNS
自动更新公网IP: 使用 godns 这个项目,定时检查公网 IP,自动更新,
1 | docker run -d --name godns --restart=always -v /path/to/config.json:/usr/local/godns/config.json timothyye/godns:latest |
更多配置参数可以看文档 PS: SUB_DOMAIN 需要手动在域名商添加 A 记录
1 | # example config: |
HTTPS 证书 && nginx 反代
HTTPS 证书使用 acme.sh 自动申请,更新。
1 | 先申请一下证书证书 |
1 | # /home-proxy/docker-compose.yml |
nginx 配置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 /home-proxy/nginx/conf.d/proxy.conf
替换 domain.com, $SERVICE_IP, $PORT
server {
listen 80;
server_name *.domain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name xxx.domain.com;
location / {
proxy_pass https://$SERVICE_IP:$PORT;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_ssl_server_name on;
proxy_ssl_name $host;
}
ssl_certificate /etc/nginx/certs/*.domain.com/fullchain.cer;
ssl_certificate_key /etc/nginx/certs/*.domain.com/*.domain.com.key;
}
...
路由器端口转发
1 | +----------------+ |
联通光猫开启 DMZ,流量转给路由器。路由器开启端口转发,交给 nginx (联通屏蔽 80/443,自行选择安全端口),最后由 nginx 分发到各 service。带小绿锁的公网 home server 就配好了。
唯一的遗憾就是每次输域名都要自带端口,自用的话问题不大,公网直连回家还是很快的,舒服。