我们在主域的子目录中运行一个 wordpress 博客。
domain.com => Server A (Nginx)
domain.com/blog => Server B (Apache)
博客本身位于不同的(廉价共享主机)服务器上,并采用反向代理。
Nginx => Apache
由于每个博客请求都通过我们的主要服务器进行传输,服务器 B不断阻止我们的服务器AIP地址,因为所有请求都来自同一个 IP。如果大量请求同时命中(主要是爬虫),我们会被列入黑名单 10 分钟,并导致 502 网关错误。
有没有办法将真实 IP 地址传递给服务器 B?或者有人知道其他解决方案,而无需升级到根服务器?遗憾的是,目前无法在服务器 A 上托管 wordpress 博客。
答案1
如果“廉价共享主机”支持的话,您可以转发原始请求者 IP:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
因此希望您的反向代理的 IP 不会被阻止。
如果您想阻止机器人列表,您可以查看这个问题/答案:
https://stackoverflow.com/a/24820722/940009
答案2
晚了5年。
不行,但是你可以屏蔽爬虫吗?
if ($http_user_agent ~* bot)
{
return 404;
}
未经测试。