基本配置示例

nginxnginx复制server {    listen 80;
    server_name example.com;    
    # 静态资源根目录
    root /var/www/html;    
    # 默认首页
    index index.html index.htm;    
    # 静态资源缓存配置
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ {        # 设置缓存过期时间
        expires 30d;
        add_header Cache-Control "public, immutable";        
        # 关闭日志,提高性能
        access_log off;
    }    
    # HTML文件不缓存
    location ~* \.html$ {
        add_header Cache-Control "no-cache, must-revalidate";
    }
}

详细配置说明

1. 基础静态资源配置

nginxnginx复制server {
    listen 80;
    server_name static.example.com;
    root /data/static;    
    # 处理静态文件请求
    location / {
        try_files $uri $uri/ =404;
    }
}

2. 带路径映射的配置

nginxnginx复制server {
    listen 80;
    server_name example.com;    
    # 将 /static/ 路径映射到 /var/www/static/
    location /static/ {        alias /var/www/static/;        
        # 开启目录浏览(可选)
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
    }    
    # 图片资源单独配置
    location /images/ {        alias /var/www/images/;        
        # 图片压缩传输
        gzip_static on;        
        # 缓存设置
        expires 7d;
        add_header Cache-Control "public";
    }
}

3. 高级优化配置

nginxnginx复制server {
    listen 80;
    server_name example.com;
    root /var/www/html;    
    # 通用静态资源处理
    location ~ ^/(css|js|img|fonts)/ {
        root /var/www/static;        
        # 启用gzip压缩
        gzip on;
        gzip_vary on;
        gzip_comp_level 5;
        gzip_min_length 256;
        gzip_types text/plain text/css text/javascript application/javascript application/x-javascript image/svg+xml;        
        # 缓存控制
        add_header Cache-Control "public, max-age=31536000, immutable";
        add_header X-Content-Type-Options "nosniff";        
        # 安全头
        add_header X-Frame-Options "SAMEORIGIN";        
        # 禁止访问隐藏文件
        if ($request_filename ~ /\.) {            return 403;
        }
    }    
    # 大文件下载优化
    location /downloads/ {        alias /var/www/downloads/;        
        # 断点续传支持
        add_header Accept-Ranges bytes;        
        # 大文件不缓存
        add_header Cache-Control "no-store";
    }
}

常用配置参数说明

参数

作用

root

指定静态文件的根目录

alias

路径别名,替换location匹配部分

expires

设置浏览器缓存过期时间

add_header

添加响应头

gzip

启用Gzip压缩

autoindex

开启目录列表

try_files

尝试按顺序查找文件

验证配置

bashbash复制# 检查配置文件语法nginx -t# 重新加载配置nginx -s reload