
同一台服务器,配置得当和默认配置之间的性能差异可以达到几倍。Nginx 的优化不需要面面俱到,抓住四个高频段落就可以获得大部分的收益。
压缩传输控制文本大小。开启 gzip 并按类型限制,HTML、CSS、JS、JSON、SVG 都包括在内,图片、视频除外;压缩级别取中间值,级别太高会占用处理器资源而收益递减;短文件不压缩,低于设定阈值的内容直接原样返回。现代浏览器可以协商出更高效的压缩算法,根据客户端的能力来选择。
静态资源缓存决定了回访的速度。带版本号或者指纹的文件设置长周期强缓存,HTML 入口使用短周期或者协商校验;缓存头写入配置模板统一输出,避免各个地方零散定义。从日志的角度来看命中情况,命中率低一般是资源地址没有带上版本参数。
跳转和加密都收敛到一个地方。80端口统一重定向到https,一跳直达,没有中间环节;证书链完整上传,启用会话复用降低握手开销;严格传输安全头在确认全站无明文资源之后才开启,初始有效期从短到长逐步放宽。
防盗链保护带宽。根据来源头校验引用方,白名单列出本站和合作域名,未匹配的图片请求返回占位图;下载类资源使用时效签名,来源字段被伪造时还有第二道防线。空来源请求区别对待,防止误伤直接打开图片的情况。
完成逐句语法检查之后再进行平滑重载,把配置文件纳入版本控制中,每一次修改都要留下痕迹,出现问题可以回退。