手上有一个博客、一个图床、一个内部工具,各自占着端口。想让它们共用同一个域名和证书,反向代理是最省事的答案。
结构
ws.example.com/ → 博客(php-fpm)
ws.example.com/img/ → 图床(127.0.0.1:5244)
ws.example.com/tool/ → 内部工具(127.0.0.1:3000)配置要点
location /img/ {
proxy_pass http://127.0.0.1:5244/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 20m;
}proxy_pass结尾有没有斜杠,决定路径是否被截断,这是最常见的 404 来源。- 子路径部署时,后端必须知道自己挂在前缀下(
base配置或X-Forwarded-Prefix),否则静态资源会 404。 - WebSocket 要额外加
Upgrade与Connection两个头,不然长连接会一直掉。
证书
一张泛域名证书覆盖所有子路径,续期只 reload nginx。别给每个服务单独申请,管理成本会翻倍。
评论 0
还没有评论,来说两句吧。