把几个小服务放到同一台机器上

2026-08-14

手上的小服务越来越多,一个个单独开机器实在浪费。后来索性都塞进同一台, 用一个 Nginx 做入口,按域名分流。记一下当时觉得值得记的部分。

按域名分,比按端口分省心

一开始是按端口分的,:8001、:8002 这样。问题是用起来别扭, 而且端口号得记。换成按域名分之后,每个服务一个 server 块, 互不干扰,加一个服务就是复制一份改两行。

server {
    listen 443 ssl;
    server_name a.example.com;
    location / {
        proxy_pass http://127.0.0.1:8001;
    }
}

后端起在回环地址上

这一点我踩过:后端如果监听 0.0.0.0,就等于绕过了 Nginx 直接暴露在公网。 改成只绑 127.0.0.1,外面只能从 Nginx 进来,省心很多。

改完先校验再 reload

一开始改完直接 restart,结果有次配置写错,服务直接起不来。 后来改成固定两步:先 nginx -t 确认语法,再 reload。 reload 不会断开已有连接,比 restart 温和得多。

唯一要注意的是重复的 server_name:Nginx 只会打一条 warning, 不会报错,所以"校验通过"不等于没冲突。这个坑我后来是靠数日志才发现的。

← 回首页