Nginx sites文件夹

nginx为什么要sites-available sites-enable 两个文件夹 ?

Nginx 使用 sites-availablesites-enabled 两个文件夹的设计主要是为了提供更灵活的站点配置管理方式。这种设计模式在很多 Linux 发行版(如 Debian/Ubuntu)的 Nginx 包中很常见。

这两个文件夹的作用和区别:

  1. sites-available

    • 这是"可用的站点配置"存储目录

    • 存放所有可能的站点配置文件

    • 这些配置不会自动生效

    • 相当于一个"配置仓库"

  2. sites-enabled

    • 这是"已启用的站点配置"目录

    • 只包含当前需要生效的站点配置

    • 通常包含指向 sites-available 中文件的符号链接

    • Nginx 实际加载的是这里的配置

这样设计的主要优点

  1. 配置管理更清晰

    • 可以保留不活跃的配置但不启用

    • 需要时只需创建/删除符号链接即可启用/禁用站点

  2. 快速切换

    • 启用/禁用站点只需操作符号链接

    • 无需修改或删除实际配置文件

  3. 版本控制友好

    • 可以保留多个版本的配置在 sites-available

    • 通过切换符号链接来快速回滚

  4. 安全性

    • 避免因直接删除配置文件而丢失配置

    • 禁用站点时配置仍然保留

实际工作流程示例

# 启用一个站点
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
​
# 禁用一个站点
sudo rm /etc/nginx/sites-enabled/example.com
​
# 重载Nginx配置
sudo nginx -s reload

需要注意的是,这种双文件夹结构并不是 Nginx 本身的强制要求,而是某些 Linux 发行版的管理方式。如果你查看 Nginx 的主配置文件 nginx.conf,通常会看到类似这样的指令:

include /etc/nginx/sites-enabled/*;

这表示 Nginx 会加载 sites-enabled 下的所有配置文件。

如果你使用的是其他操作系统或从源码编译安装的 Nginx,可能不会自动创建这两个目录,但你可以手动创建并采用这种管理方式,因为它确实能带来很多便利。



Nginx sites文件夹
https://halo.jiangling.site/archives/nginx-sites
作者
你的降灵
发布于
2025年07月19日
许可协议