Nginx安装目录结构依安装方式而异,但功能职责固定:conf/为配置中枢(含nginx.conf等),html/为默认静态根目录,logs/存access.log和error.log等日志,sbin/含nginx二进制文件,client_body_temp等临时目录须存在且可写。

看安装方式,快速定位主目录
先运行 which nginx,输出结果直接告诉你主目录在哪:
- /usr/sbin/nginx → 大概率是 YUM、DNF 或 APT 安装,主配置在 /etc/nginx,日志在 /var/log/nginx
- /usr/local/nginx/sbin/nginx → 源码编译安装,默认前缀是 /usr/local/nginx,所有核心目录都在其下
conf/ 是配置中枢,nginx.conf 是唯一入口
无论路径在哪,conf/ 目录一定存在,且承担全部配置管理职能:
-
nginx.conf:主配置文件,所有其他配置(如站点、SSL、上游)都通过
include引入其中 - mime.types:定义常见文件后缀与 MIME 类型的映射,影响浏览器如何解析资源
- fastcgi_params、scgi_params、uwsgi_params:分别适配 PHP、SCGI、uWSGI 后端协议,非默认启用,按需调用
html/ 和 logs/ 是最常打交道的两个目录
html/ 是默认静态根目录,Nginx 启动后未做任何 server 配置时,访问 IP 就会返回这里的 index.html;logs/ 则是排障第一现场:
- access.log:记录每次 HTTP 请求(IP、时间、URL、状态码、响应大小等),用于流量分析或访问审计
-
error.log:记录启动失败、配置错误、模块加载异常、权限拒绝等关键问题,级别通常设为
warn或error以减少噪音 -
nginx.pid:保存 master 进程 ID,systemd 脚本或手动
kill操作依赖它,路径由配置中pid指令指定(如/run/nginx.pid)
临时目录不是摆设,权限错就直接报错
像 client_body_temp、proxy_temp、fastcgi_temp 这类目录,平时几乎不用手动进,但必须存在且对 Nginx 运行用户(如 www-data 或 nginx)可写:
- 上传大文件时,请求体先暂存到
client_body_temp,权限不足会报(13: Permission denied) - 开启反向代理或 FastCGI,缓存响应内容需要写入对应
*_temp目录,缺失或无写权会导致 502 或 500 错误 - 这些目录位置由配置中
client_body_temp_path、proxy_temp_path等指令控制,未显式设置则使用编译时默认路径(如/usr/local/nginx/client_body_temp)


















