静态资源响应要优雅,需统一强缓存与内容策略、启用零拷贝传输优化、默认安全静默、定制体面错误页——所有策略自然生效,无需人工干预。

让静态资源响应更“优雅”,关键不是堆功能,而是让缓存合理、传输高效、安全可控、错误友好——所有策略都该自然生效,不依赖人工逐条判断。
统一设置强缓存与内容策略
对常见静态文件(js/css/png/svg等)启用长期缓存,并标记为不可变,减少重复请求和校验开销:
- 用正则 location 匹配后缀,比如
location ~* \.(js|css|png|jpg|gif|svg|woff2|ttf)$ - 设置
expires 1y和add_header Cache-Control "public, immutable" - 字体文件额外加
Access-Control-Allow-Origin "*",避免跨域加载失败
启用内核级传输优化
Nginx 原生支持零拷贝发送,大幅降低 CPU 和内存压力,尤其适合大文件或高并发场景:
- 在 server 或 http 块中开启
sendfile on - 搭配
tcp_nopush on(合并 TCP 包)和tcp_nodelay off(避免 Nagle 算法延迟) - 确保 MIME 类型已正确加载:
include /etc/nginx/mime.types
默认行为要安全且安静
不暴露目录结构、不响应非法方法、不记录冗余日志,是优雅响应的底层修养:
- 根 location 中设
autoindex off,禁止目录列表 - 限制请求方法:
if ($request_method !~ ^(GET|HEAD)$) { return 405; } - 静态资源 location 内加
access_log off,减少 I/O 和磁盘写入 - 隐藏敏感文件:
location ~ /\. { deny all; }
错误响应也要有体面
404 不该返回空白页或默认 Nginx 提示,而应引导用户或提供上下文:
- 配置
error_page 404 /404.html,并用location = /404.html { internal; }保护路径 - 自定义页面里可嵌入简单导航、搜索框或返回首页链接
- 对 favicon.ico 等高频缺失资源,可单独返回空响应或 204,避免日志刷屏











