主题
配置目录
Nginx 主配置目录通常是 /etc/nginx。不同发行版结构略有差异,Ubuntu 常见结构如下:
bash
/etc/nginx
├── nginx.conf
├── conf.d/
├── sites-available/
├── sites-enabled/
├── snippets/
├── mime.types
├── proxy_params
├── fastcgi_params
└── modules-enabled/核心文件
| 路径 | 作用 |
|---|---|
nginx.conf | 主配置文件,定义全局、events、http 等配置 |
conf.d/ | 额外配置目录,常用于按文件拆分配置 |
sites-available/ | 可用站点配置,文件存在不代表启用 |
sites-enabled/ | 已启用站点配置,通常是到 sites-available 的软链接 |
snippets/ | 可复用配置片段,例如 SSL、proxy header |
mime.types | 文件扩展名和 Content-Type 映射 |
proxy_params | 反向代理常用 header 片段 |
推荐站点结构
bash
/etc/nginx
├── nginx.conf
├── snippets/
│ ├── proxy-headers.conf
│ └── ssl-params.conf
├── sites-available/
│ ├── example.com
│ └── api.example.com
└── sites-enabled/
├── example.com -> /etc/nginx/sites-available/example.com
└── api.example.com -> /etc/nginx/sites-available/api.example.com启用站点:
bash
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
nginx -t
systemctl reload nginx停用站点:
bash
unlink /etc/nginx/sites-enabled/example.com
nginx -t
systemctl reload nginx配置拆分原则
- 一个域名或应用一个站点配置文件。
- 公共 SSL 参数、代理头、缓存策略放到
snippets/。 - 不在
nginx.conf里堆业务站点配置。 - 删除默认站点前,先确认已有
default_server或明确的兜底配置。
