Nginx 安装后的目录结构与配置速览
发布时间:2026-07-03 18:27       
更新时间:2026-07-04 03:38
刚装完 Nginx 的常见困惑,是教程里说的配置路径和自己的机器对不上——Debian 系与 RHEL 系的目录布局确实不同。这篇把两条线的结构、日志位置和进程模型一次说清。
一、主配置与子配置
nginx -t 会打印主配置路径,通常是 /etc/nginx/nginx.conf。差别在子配置的组织方式:
- RHEL 系(CentOS、Rocky):主配置 include /etc/nginx/conf.d/*.conf,站点配置都放 conf.d 目录,文件名随意但必须 .conf 结尾。
- Debian 系(Ubuntu):在 conf.d 之外还有一对目录 sites-available 与 sites-enabled,主配置 include 的是 sites-enabled。约定是配置先写进 sites-available,再用软链接启用:
```
ln -s /etc/nginx/sites-available/app.conf /etc/nginx/sites-enabled/
```
不用的站点删软链即下线,配置本体保留。两派只是目录约定不同,include 机制完全一样。找不到自己的配置在哪,就顺着主配置里的 include 行一层层往上翻,主配置永远是入口。改完任何子配置,都用 nginx -t 验证一遍再加载,子配置的语法错误同样会让整个服务拒绝启动。
二、日志位置
默认访问日志 /var/log/nginx/access.log,错误日志 /var/log/nginx/error.log。配置里对应的指令:
```
access_log /var/log/nginx/app.access.log;
error_log /var/log/nginx/error.log warn;
```
排错先看 error.log,多数打不开的问题原因都写在里面。日志持续增长,包管理器装的 Nginx 一般已带 logrotate 轮转配置,自编译的要自己补。
三、进程模型
Nginx 采用 master-worker 模型:master 进程读配置、绑端口、管理 worker,不处理请求;真正干活的是若干 worker,数量默认与 CPU 核数一致(worker_processes auto)。worker 之间通过共享内存协调,没有线程锁开销,这是它扛得住高并发的根基。ps -ef | grep nginx 能看到 master 与 worker 两种角色,reload 后 worker 换新而 master 不动,进程列表里短暂出现两批 worker 属于正常现象,不是异常。
四、其他常用位置
默认站点根目录:RHEL 系在 /usr/share/nginx/html,Debian 系在 /var/www/html。PID 文件在 /run/nginx.pid。MIME 类型表在 /etc/nginx/mime.types,遇到浏览器把文件下载下来而不是显示的问题,多半和它的映射有关。
路径记不准也没关系,记住两个万能命令:nginx -t 报配置错误与行号,nginx -V 列编译参数和默认路径前缀,比翻文档快。还有一条规律:location 匹配越具体的优先级越高,指令不生效时先检查它所在的块。