据我所知,一些网站托管公司使用反向代理作为某种负载平衡器,因此所有 HTTP 请求都会发送到一台物理服务器,但后面还有其他几台网络服务器。例如,如果您访问http://www.yougetsignal.com/tools/web-sites-on-web-server/并输入IP 213.239.234.111你会看到这台机器托管了700多个域名。
现在我的问题是:
是否可以通过 HTTP 标头或其他指纹识别方法来查明服务器是否充当反向代理?
答案1
该机器在一个 IP 上托管超过 700 个域名这一事实与反向代理无关。
由于 IP 地址是一种稀缺商品,因此在一个 IP 地址上托管多个(很多)网站是一种常见的做法。网络托管公司一直都在这样做,如果这些网站的流量不是特别大,那么一台服务器上托管 700 个网站并不罕见。这里不涉及反向代理。
HTTP 标头中可能会显示反向代理的存在,也可能不会显示。通常不会。此外,反向代理应用程序可能与 Web 应用程序本身位于同一台服务器上。而且,这种情况经常发生。
有时,如果您可以“指纹识别”某个硬件或软件是专用负载平衡器,那么您可以确信它充当反向代理。但是,如果通用软件(Apache 等)也可以充当代理,那么这是不可能的。