基本配置示例
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";
}
}
常用配置参数说明
参数 | 作用 |
|---|---|
| 指定静态文件的根目录 |
| 路径别名,替换location匹配部分 |
| 设置浏览器缓存过期时间 |
| 添加响应头 |
| 启用Gzip压缩 |
| 开启目录列表 |
| 尝试按顺序查找文件 |
验证配置
bashbash复制# 检查配置文件语法nginx -t# 重新加载配置nginx -s reload
陕公网安备 61012502000223号
评论一下吧