Skip to content

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;
}