如何优化Nginx服务器的TTFB?附现有运行环境与配置说明
WordPress站点跨区域TTFB过高优化建议
Nginx配置优化
你当前的配置存在多处可优化的点:
- 开启gzip压缩:当前配置中gzip相关参数全部被注释,解开对应注释即可启用,也可额外编译安装brotli模块实现更高压缩率,降低资源传输耗时。
# 参考gzip配置 gzip on; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
- 增加静态资源缓存规则:新增location块匹配jpg、png、css、js、woff等静态资源后缀,设置长期缓存头,避免静态资源重复回源请求:
location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2?|svg)$ { expires 1y; add_header Cache-Control "public, immutable"; access_log off; }
- 配置fastcgi_cache全页缓存:直接在Nginx层缓存WordPress生成的静态页面副本,非更新场景下请求直接返回缓存,完全跳过PHP和数据库处理,美洲本地TTFB可降低至50ms以内。
- 调整基础参数:将
worker_connections从768调整为1024,开启server_tokens off隐藏服务版本号,减少无用信息传输。
运行环境优化
- 开启PHP OPcache:在php.ini中启用OPcache扩展,缓存PHP字节码,避免每次请求重复编译PHP代码,可降低PHP处理耗时30%以上。
- 调整PHP-FPM配置:针对2GB内存的配置,将PHP-FPM的pm模式改为dynamic,设置
pm.max_children=10、pm.start_servers=3、pm.min_spare_servers=2、pm.max_spare_servers=5,避免进程占用内存过高或资源不足。 - 数据库优化:清理WordPress数据库中的冗余草稿、修订版本、垃圾评论,将MySQL的
innodb_buffer_pool_size调整为512M(占总内存的1/4),提升数据库查询效率。
WordPress应用优化
- 禁用不必要的插件:很多功能冗余的插件会大幅增加页面生成耗时,逐个禁用排查慢请求来源,也可安装Query Monitor插件定位页面生成的耗时点。
- 安装页面缓存插件:可选用WP Rocket、W3 Total Cache等缓存插件,实现页面静态化、数据库查询缓存等功能,无需手动修改Nginx配置也可实现缓存效果。
跨区域访问优化
你当前的服务节点仅部署在北美夏洛特,物理链路延迟本身就很高:欧洲到北美默认延迟在100ms以上,亚洲到北美延迟普遍超过150ms,叠加服务器处理时间就会出现跨区域TTFB过高的问题。
- 接入全球CDN服务:使用覆盖全球各区域的CDN节点,缓存静态资源甚至整站页面,用户请求直接由就近的CDN节点返回,非缓存请求才回源,可大幅降低欧洲、亚洲、澳洲等区域的访问TTFB。
- 如有大量非美洲用户,也可考虑将站点部署为多区域架构,在用户密集的区域增设边缘节点。
内容的提问来源于stack exchange,提问作者nginxnoob
相关产品推荐
相关产品推荐

