SEO 百科

反向代理

本页目录

反向代理

反向代理 是站在网站前面接请求的那一层:它替站点收下客户端的连接,再把请求转给后端的服务器处理,响应也由它带回。与浏览器侧使用的正向代理相反,它代表的是服务器一方,客户端并不知道自己连的是它。

站长接触到的四种用途

同一层软件常被用来做四件事:把多个后端服务收在一个域名与端口后面;做 TLS 终止,把证书与解密集中在这一层;缓存静态响应,让后端少干活;把流量分摊到多台机器上。Nginx 的官方说明里就把自己列为 HTTP 服务器、反向代理、缓存与负载均衡器[1]。

与搜索有关的三条影响

第一条是响应速度。这一层能直接返回缓存的页面与静态文件,省掉后端一次生成的开销,加载性能反映在 LCP 上[2]。

第二条是响应头与压缩的设置落点。压缩、缓存控制、字符集这些由响应头决定的东西常在这一层配置,配错了后端改了也没用。nginx 一侧提供 gzip 模块,配置项包括压缩等级、最小长度与 MIME 类型白名单[1]。

第三条是重定向与改写的实施位置。路径重写、协议跳转、大小写归一这类规则可以在这一层完成,也可以在应用层做,两处都写时会出现规则互相覆盖的情况。

容易出错的地方

超时设置太短时,慢页面被中途掐断,爬虫看到的是错误页而不是页面;这一层日志也是判断引擎有没有来过的主要依据[3]。

真实访客 IP 的传递要配。默认情况下后端看到的是代理的地址,做地区分发、限流与日志分析时都会失真。

TLS 版本与套件要跟上。协议或证书链配置有问题时,抓取工具可能报握手失败,这类失败在抓取错误里被单列一类。

常见误用

第一种是把缓存与页面自身的新旧混为一谈。缓存放久了,引擎抓到的可能是旧内容,改完要主动清。第二种是只把开关放在应用层,robots.txt 与 noindex 都归这层管,代理直接返回缓存响应时那个头根本没出来。第三种是把所有路径都代理到同一后端,静态资源白白绕一圈。

附录

参见

参考资料

官方(境外)

  1. 《nginx documentation》,NGINX。
  2. 《了解 Core Web Vitals 和 Google 搜索结果》,Google 搜索中心。
  3. 《优化抓取预算》,Google 搜索中心。

外部链接