Nginx 配置写得越久越容易变成一锅粥。这几年我形成了几个固定习惯,分享给同样维护多站点的人。
一个站点一个文件
conf.d/
blog.conf
api.conf
static.conf
不要全塞进 nginx.conf。改一个站点的配置不应该牵扯到其他站点。
公共部分抽 upstream
upstream app_backend {
server 127.0.0.1:8090 max_fails=3 fail_timeout=10s;
keepalive 32;
}
多个 location 复用同一个 upstream,避免地址散落在各处。
日志按站点分
access_log /var/log/nginx/blog.access.log main;
error_log /var/log/nginx/blog.error.log warn;
排查问题的时候,按站点切日志能省掉大量 grep。
改完先做语法检查
docker exec nginx nginx -t && docker exec nginx nginx -s reload
nginx -t 通过再 reload,避免把线上打挂。这条我写进了发布脚本,不给手滑留机会。