通过nginx代理站点会导致空白页面

通过nginx代理站点会导致空白页面,nginx,proxy,velo,Nginx,Proxy,Velo,我们已经使用Wix.com开发了我们网站的新版本。因为我们在iOS上使用深度链接,所以我们需要。事实证明,Wix目前不支持这一点,尽管它们是 “没问题,”我们想。我们可以使用一个nginx反向代理来提供苹果应用程序站点关联文件,并将其余流量代理给Wix。我们使用以下nginx配置进行设置: upstream wix { keepalive 100; server mgertner.wixsite.com:443; } server { listen

我们已经使用Wix.com开发了我们网站的新版本。因为我们在iOS上使用深度链接,所以我们需要。事实证明,Wix目前不支持这一点,尽管它们是

“没问题,”我们想。我们可以使用一个nginx反向代理来提供
苹果应用程序站点关联
文件,并将其余流量代理给Wix。我们使用以下nginx配置进行设置:

upstream wix {
    keepalive 100;
    server mgertner.wixsite.com:443;
}


server {
    listen              80;
    server_name         getcorkscrew.com;

    location / {
      proxy_http_version 1.1;
      proxy_pass https://wix/corkscrew-copy;
      proxy_pass_request_headers      on;
    }
}

server {
    listen              80;
    server_name         www.getcorkscrew.com;

    location / {
      proxy_http_version 1.1;
      proxy_pass https://mgertner.wixsite.com/corkscrew-copy;
      proxy_pass_request_headers      on;

    }
}
然而,当我们访问www.getcorkscrew.com时,我们只会得到一个空白的白色页面。显然,Wix正在返回页面,
head
包含一堆脚本和其他内容,但正文只包含:

<body>
    <div id="SITE_CONTAINER"></div>
    <div comp="wysiwyg.viewer.components.WixAds" skin="wysiwyg.viewer.skins.wixadsskins.WixAdsWebSkin" id="wixFooter"></div>
    <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"errorBeacon":"bam.nr-data.net","licenseKey":"c99d7f1ab0","agent":"","beacon":"bam.nr-data.net","applicationTime":9,"applicationID":"1963269,30200700","transactionName":"ZFAHNkNYXUBQVEUKXF0aNgdDT19WRRhVCkBDVBEBWVxB","queueTime":0}
    </script>
</body>

window.NREUM | |(NREUM={});NREUM.info={“errorBeacon”:“bam.nr数据.net”,“licenseKey”:“c99d7f1ab0”,“代理”:“beacon”:“bam.nr数据.net”,“applicationTime”:9,“applicationID”:“196326930200700”,“transactionName”:“ZfahnnyxUKBVEUKXF0ANGDDT19WRRhVCKBDVBEBWVXB”,“排队时间”:0}
Wix似乎在某种程度上检测到了代理的使用并阻止了正常的页面内容。但是当我们检查这个时,我们发送的头与原始请求完全相同


关于Wix如何知道我们正在使用代理以及如何绕过代理的任何想法?

结果表明,这与Wix呈现站点的方式有关。他们将站点的URL嵌入到他们的
index.html
中,如果从另一个URL加载该站点,则不会呈现该站点。我不认为他们是故意阻止的。在我看来,这只是渲染代码实现方式的副作用


我们通过使用nginx子过滤器将
index.html
中嵌入的URL更改为我们代理的URL,解决了这个问题。现在它工作正常。

嗨。刚刚通过谷歌找到你的回复。我还添加了一个子过滤器“wixdomain.wixsite.com”“$host”
子过滤器关闭一次但是站点仍然没有渲染,并且是白色的。您使用了什么子过滤器?是否检查了子过滤器
index.html
中的
publicModel
的值?在我看来,至少您需要在过滤器源代码中包含站点名称(即
wixdomain.wixsite.com/sitename
)。您是指源代码中的
publicModel
json?它已经是“正确”的一个,
var publicModel={“domain”:“wixsite.com”,“externalBaseUrl”:“http:\/\/localhost:8081\/compliance”,“unicodeExternalBaseUrl”:“http:\/\/localhost:8081\/compliance”
或者我们讨论的是不同的事情吗?您可以在GitHub/Pastebin上创建一个要点,其中包含您设置了代理权限的位置块的内容吗?如果可能的话,您想对照我们的配置检查一下。您可以在这里看到我们的规则:。在我看来,您的
域设置错误。我们还没有测试过
localhost
,只有一个真正的服务器。Wix对我们所服务的实际域一无所知。