首页 > 解决方案 > 尝试将 nginx 设置为 facebook 的反向代理,但出现 facebook 错误

问题描述

我父亲的工作要求他使用 VPN 访问办公室外的任何与工作相关的内容(电子邮件、网站等),并且 VPN 会阻止 facebook,目前每当他想使用 facebook 时,他必须先注销 VPN。他问我是否可以设置一些东西来尝试解决这个问题,所以我尝试在 Debian 9 上设置 NGINX 以充当反向代理,但是我对 NGINX 的经验很少。我发现,如果我加入proxy_set_header Host $host;,我可以访问 facebook,但会看到“抱歉,出了点问题。我们正在努力尽快解决这个问题。” 但如果我不包括它,VPN 仍然会阻止 facebook。有什么建议吗?

nginx 配置

标签: nginx

解决方案


由于以下几个原因,您将无法反向代理 Facebook:

  • facebook.com不会从备用主机名加载,例如kyles-facebook-proxy-clone.com. 浏览器发送一个请求头,Host. Facebook 的服务器不会为他们不期望的主机名服务。
  • 毫无疑问,有一些客户端 JavaScript 将被硬编码到您没有代理的其他主机名(用于 API 访问、图像/视频的 CDN 等),除非您在代码中也重写了页面(这是'由于混淆而合理地不可能)。
  • facebook.com如果没有正确签名的 HTTPS 证书,您将无法提供流量。facebook.com由于HSTS需要 HTTPS 。
  • 即使您设法获得了证书,由于key pinning ,它也无法正常工作。

你能做什么?

  • 使用适当的代理服务器。
  • 使用 Tor
  • 要求让 Facebook 在 VPN 上通过。

推荐阅读