Nginx 目录
目录列表
关闭目录列表(推荐默认设置)
nginx
location /downloads/ {
alias /var/www/files/;
autoindex off; # 默认即为off,显式声明更安全
}开启目录列表(谨慎使用)
nginx
location /public/ {
alias /var/www/shared/;
autoindex on; # 启用目录列表
# 可选的美化设置
autoindex_exact_size off; # 显示易读的文件大小(KB/MB)
autoindex_localtime on; # 显示本地时间而非UTC
}二级目录
基础概念理解
什么是二级目录
- 在网站URL结构中,主域名后的第一级路径称为二级目录
- 示例:
www.example.com/blog/中/blog/就是二级目录
常见应用场景
- 静态资源分类存放(CSS/JS/图片)
- 多应用子系统部署
- API版本管理(/v1/, /v2/)
- 多语言站点(/en/, /zh/)
实现方式
nginx
server {
listen 80;
server_name example.com;
root /var/www/main;
# 二级目录配置
location /subdir/ {
# 配置选项...
}
}| 方式 | 指令 | 特点 | 适用场景 |
|---|---|---|---|
| 同服务器不同目录 | alias | 路径映射 | 静态资源服务 |
| 同服务器不同应用 | proxy_pass | 反向代理 | 动态应用 |
| 不同服务器 | proxy_pass+IP | 完全分离 | 独立服务 |
alias与root对比
| 特性 | root 指令 | alias 指令 |
|---|---|---|
| 路径处理 | 追加location路径 | 替换location路径 |
| 结尾斜杠 | 可选 | 必须包含 |
| 适用场景 | URI与文件路径一致时 | URI与文件路径不一致时 |
| 性能影响 | 轻微路径拼接 | 无额外处理 |
| 配置示例 | root /var/www; | alias /var/www/static/; |
静态资源服务配置
nginx
location /static/ {
alias /data/webassets/;
# 缓存设置
expires 30d;
access_log off;
# 安全设置
autoindex off;
}反向代理配置
nginx
location /api/ {
proxy_pass http://127.0.0.1:8000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}路径重写技巧
nginx
location /blog/ {
proxy_pass http://blog_app/; # 注意结尾的/
# 重写路径:去除/blog前缀
rewrite ^/blog(/.*)$ $1 break;
}