nginx - 尝试将 nginx 设置为 facebook 的反向代理,但出现 facebook 错误
问题描述
我父亲的工作要求他使用 VPN 访问办公室外的任何与工作相关的内容(电子邮件、网站等),并且 VPN 会阻止 facebook,目前每当他想使用 facebook 时,他必须先注销 VPN。他问我是否可以设置一些东西来尝试解决这个问题,所以我尝试在 Debian 9 上设置 NGINX 以充当反向代理,但是我对 NGINX 的经验很少。我发现,如果我加入proxy_set_header Host $host;
,我可以访问 facebook,但会看到“抱歉,出了点问题。我们正在努力尽快解决这个问题。” 但如果我不包括它,VPN 仍然会阻止 facebook。有什么建议吗?
解决方案
由于以下几个原因,您将无法反向代理 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 上通过。
推荐阅读
- spring-restdocs - 如何使用 Spring REST Docs 在请求/响应中记录混合类型的数组结构
- sql - Oracle 空间请求在一个实例上工作而不在另一个实例上工作
- c# - 如何将我的进程与当前应用程序域分开并为该进程创建新域?
- python - Selenium - 如何在 find_element_by_xpath 中使用 AND 条件
- tooltip - Nsis ToolTips 多行文本
- javascript - 如何将数据从一个页面上的表单发送到不同页面上的不同表单?
- reactjs - 如何在 ReactJS 中将 PDF 转换为图像
- python - 当 python 脚本安装为带有 NSSM 的 Windows 服务时,是否可以打印文件?
- sap - SAP HANA 中的 CREATE TABLE 和 CREATE COLUMN TABLE 有什么区别
- swift - 在 Scene Delegate 中实现 Firebase Auth 侦听器后应用程序崩溃