Ubuntu/Debian 中 Nginx 配置分层:主配置 /etc/nginx/nginx.conf 负责全局设置与 include 调度;站点配置通过 sites-available/ 与 sites-enabled/ 符号链接管理;conf.d/ 用于模块化通用配置;默认站点需禁用以防暴露。

Ubuntu/Debian 系统通过 apt install nginx 安装后,Nginx 的配置文件并非集中在一个地方,而是按功能和层级做了明确划分。理解这个结构,能帮你快速定位、修改和调试配置,避免误改或重复覆盖。
主配置文件:/etc/nginx/nginx.conf
这是 Nginx 启动时读取的顶层配置文件,定义全局指令(如 worker 进程数、日志路径、事件模型)以及最关键的 include /etc/nginx/sites-enabled/*; 指令。它本身不直接配置网站,只负责“调度”——把实际站点配置从其他位置加载进来。
- 不要直接在该文件里写 server 块,否则升级时易被覆盖
- 主要修改项包括:
worker_processes、access_log路径、gzip开关、include行是否启用 - 可通过
nginx -t验证语法,nginx -T查看最终合并后的完整配置
站点配置入口:/etc/nginx/sites-available/ 与 /etc/nginx/sites-enabled/
这是 Debian/Ubuntu 特有的管理方式,用于实现“配置即代码”的灵活启停:
-
sites-available/存放所有已编写但未启用的站点配置(如example.com、default),相当于配置仓库 -
sites-enabled/是实际生效的配置目录,通常只包含指向sites-available/中文件的符号链接 - 启用某站点:运行
ln -sf /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ - 禁用某站点:删除对应链接即可,原配置保留在
sites-available/中
模块化包含配置:/etc/nginx/conf.d/
该目录下的 *.conf 文件会被 nginx.conf 中的 include /etc/nginx/conf.d/*.conf; 自动加载,常用于:
- 通用设置复用(如统一的
client_max_body_size、proxy_set_header规则) - 第三方模块配置(如 GeoIP2、ModSecurity 的规则片段)
- 容器化部署中通过挂载方式注入配置(Docker 场景常见)
- 注意:若与
sites-enabled/中的配置冲突,以加载顺序和具体匹配优先级为准,建议避免重叠定义
默认站点与安全提示
apt 安装后会自动生成一个 /etc/nginx/sites-available/default,并软链到 sites-enabled/。该文件含基础 HTTP server 块,监听 80 端口并返回欢迎页。生产环境务必:
- 重命名或删除
default链接,防止未配置域名时暴露默认页 - 检查
server_name _;是否存在,避免泛解析导致意外匹配 - 确认
root指向的目录权限合理(Nginx 工作用户需有读取权限)










