Nginx反向代理教程:域名+HTTPS挂载自托管服务

工具官网:Nginx(nginx.org)|官方文档(docs.nginx.com)

玩自托管到一定阶段都会遇到同一个问题:Uptime Kuma 占着 3001、AstrBot 占着 8080、某个面板又是 8888——服务越装越多,端口记不住,还全裸奔在公网上。解药就是 Nginx 反向代理:所有服务只在本机监听,对外只开放 80/443,按域名把请求分发到对应服务,顺手全站 HTTPS。这篇主机评测网给出从零到能用的最小路径。

反向代理解决什么

一句话:一扇门,按名字分流。访客访问 status.example.com 到达 Nginx,Nginx 转发给本机 3001 端口的 Uptime Kuma;访问 bot.example.com 转发给 8080 的 AstrBot。收益有三个:全部服务统一走 443+HTTPS(证书在 Nginx 层统一管理);后端服务可以只监听 127.0.0.1 不暴露公网(Docker 教程里讲过的 -p 127.0.0.1 写法在这里派上用场);加服务不改防火墙规则。

安装与最小配置模板

apt install -y nginx

每个服务一个配置文件,新建 /etc/nginx/conf.d/status.conf:

server {
    listen 443 ssl;
    server_name status.example.com;
    ssl_certificate     /etc/nginx/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/key.pem;
    location / {
        proxy_pass http://127.0.0.1:3001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

改完 nginx -t 检查语法、systemctl reload nginx 生效——这两条是肌肉记忆。三个 proxy_set_header 的作用:让后端拿到真实的访问者 IP 和原始协议,Uptime Kuma 这类面板的访客统计才准确。证书部分单域名用宝塔/1Panel 一键申请,多子域直接上泛域名证书,一张 *.example.com 管所有服务。

WebSocket 服务必加的四行

Uptime Kuma、AstrBot 这类带实时推送的服务用 WebSocket,默认配置会握手失败表现为页面白屏或断连。location 里补上:

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 300s;

判断技巧:服务在浏览器直接 IP:端口访问正常、挂上反代就异常,九成是缺这三行头。

安全与细节清单

一,后端绑回环:既然有了反代,Docker 服务一律 -p 127.0.0.1:3001:3001,面板类服务别裸奔公网——这是加固思路的延伸。二,上传大小:默认 client_max_body_size 只有 1M,网盘类服务要在 server 块加 client_max_body_size 512m;,否则传大文件报 413。三,HTTP 跳转:加一个 80 端口的 server 块 return 301 https://$host$request_uri;,强制全站 HTTPS。四,默认站点:没有匹配域名时 Nginx 会用第一个 server 块响应——不想要「裸 IP 访问打到某个服务」,加一个 return 444 的 default_server 兜底。

排错速查

症状 原因 处理
502 Bad Gateway 后端没起/端口错 curl 127.0.0.1:3001 本机验证后端
白屏或实时数据不出 WebSocket 头缺失 补 Upgrade/Connection 三行
上传大文件 413 client_max_body_size 默认 1M 调大限制
访客 IP 全是 127.0.0.1 没传 X-Real-IP 补三个 proxy_set_header
证书不匹配警告 server_name 与证书域名不符 核对泛域名/单域名证书覆盖

至此自托管体系最后一块拼图齐了:Docker 跑服务、acme.sh 管证书、Nginx 做统一入口、Uptime Kuma 盯可用性——四件套配齐,你这台 VPS 就是个像模像样的小型托管平台。配置语法以 Nginx 官方文档为准。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像-主机测评网
欢迎您留下宝贵的见解!
提交
头像-主机测评网

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容