如何新增/覆盖Nginx配置文件?多站点部署正确配置方式
Nginx多站点配置的标准惯例
强烈建议为每个独立托管的站点/应用创建单独的配置文件,直接在已有配置文件里追加server块虽然能正常运行,但不符合运维通用规范,后续维护会有很多隐患。
不推荐混写配置的核心原因
- 故障风险高:多个站点的规则写在同一个文件里,修改单站点配置时很容易误触其他站点的规则,导致无关站点意外中断。
- 排错效率低:站点出现访问异常时,独立配置可以直接定位到对应文件排查规则,混写配置需要通篇查找匹配的server、location块,排错时间会成倍增加。
- 站点管理不便:
sites-available+sites-enabled的目录设计本身就是为了支持单站点独立启停,独立配置可以通过创建/删除软连接快速上线、下线站点,不需要改动任何其他站点的配置。 - 迁移复用麻烦:后续如果需要把某个站点迁移到其他服务器,直接复制对应独立配置文件即可,混写配置需要手动拆分提取对应规则,很容易出现漏配。
RHEL系统下的标准操作流程
注意RHEL官方源安装的Nginx默认不带sites-available、sites-enabled目录,如果你已经手动创建目录并在nginx.conf中添加了对应目录的include规则,新增站点按以下步骤操作即可:
- 在
/etc/nginx/sites-available/路径下新建以站点域名命名的配置文件,比如新域名为mysite.com就创建mysite.com.conf,配置参考如下格式:
server { listen 80; server_name mysite.com; charset utf-8; root /var/www/mysite-folder; index index.html index.htm; location / { root /var/www/mysite-folder; try_files $uri /index.html; } }
- 配置编写完成后执行
nginx -t命令校验语法,确认没有配置错误。 - 创建软连接将配置文件链接到
sites-enabled目录实现配置启用:
ln -s /etc/nginx/sites-available/mysite.com.conf /etc/nginx/sites-enabled/
- 执行
systemctl reload nginx重载Nginx配置,新站点即可上线。
特殊场景说明
如果你是要在同一个域名下通过不同路径部署多个应用(例如somedomain.com/blog、somedomain.com/admin分别对应不同应用),这种场景不需要新建独立配置文件,直接在已有域名的配置文件中新增对应的location规则即可。只有当应用对应独立的server_name(独立域名、二级域名)时,才需要拆分独立配置文件。
内容的提问来源于stack exchange,提问作者arve
相关产品推荐
相关产品推荐

