nginx 静态文件服务

高效托管静态文件,配置缓存、压缩和目录浏览

语法

root path; / alias path; / try_files;

参数

参数说明示例级别
root 设置根目录 root /var/www/html; 常用
alias 路径别名(替换 location 匹配部分) alias /data/files/; 常用
try_files 按顺序尝试文件 try_files $uri $uri/ /index.html; 常用
expires 设置缓存过期时间 expires 30d; 常用
gzip 启用 gzip 压缩 gzip on; 常用
autoindex 启用目录浏览 autoindex on; 进阶

示例

SPA 应用(React/Vue)

server {
    listen 80;
    server_name app.example.com;
    root /var/www/app/dist;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }
}
try_files 实现前端路由回退

静态资源缓存 + 压缩

http {
    gzip on;
    gzip_types text/css application/javascript image/svg+xml;
    gzip_min_length 1000;

    server {
        location ~* \.(css|js|jpg|png|woff2)$ {
            expires 1y;
            add_header Cache-Control "public, immutable";
        }
    }
}
静态资源长期缓存 + gzip 压缩

文件下载服务

location /downloads/ {
    alias /data/files/;
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime on;
}
启用目录浏览,显示文件列表

常见错误

403 Forbidden Nginx 进程没有读取文件的权限,检查文件和目录权限(chmod/chown)
404 Not Found(SPA 刷新) 缺少 try_files $uri $uri/ /index.html; 配置

技巧

相关命令