Nginx 通过 sites-available 和 sites-enabled 目录配合符号链接实现站点启停管理:前者存所有配置文件,后者仅存指向它们的软链接;启用即创建链接(ln -sf),禁用即删除链接(rm),再执行 nginx -t 和 nginx -s reload 即可平滑生效。

Nginx 本身不内置“启用/禁用站点”的开关功能,但可以通过软链接(symbolic link)配合目录结构实现类似 Apache 的 sites-enabled / sites-available 机制,做到配置的集中管理、按需激活、零重启生效——关键是用 nginx -s reload 而非 restart。
建立 sites-available 与 sites-enabled 目录结构
在 Nginx 配置主目录(通常是 /etc/nginx 或 /usr/local/nginx/conf)下创建两个子目录:
-
sites-available/:存放所有站点的完整独立配置文件(如example.com.conf、api.internal.conf),不被 Nginx 主动加载 -
sites-enabled/:仅存放指向sites-available/中配置文件的软链接,Nginx 实际只 include 这个目录下的文件
然后修改主配置 nginx.conf 中的 http 块,添加一行:
启用一个站点(创建软链接)
假设你已将 myapp.conf 放入 /etc/nginx/sites-available/,运行:
sudo ln -sf /etc/nginx/sites-available/myapp.conf /etc/nginx/sites-enabled/myapp.conf
-s 表示软链接,-f 表示强制覆盖(避免重复创建时报错)。链接名建议保持一致,便于识别。
禁用一个站点(移除软链接)
只需删除 sites-enabled/ 下对应软链接,不删源文件:
sudo rm /etc/nginx/sites-enabled/myapp.conf
此时该站点配置不再被 include,但原始配置仍安全保留在 sites-available/ 中,随时可重新启用。
验证并重载配置
每次增删软链接后,务必先检查语法再重载:
-
sudo nginx -t—— 确认配置无语法错误 -
sudo nginx -s reload—— 平滑重载,新链接关系立即生效,已有连接不受影响
无需 stop/start,不中断服务,这才是真正的“优雅管理”。


















