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

时间:2017-05-19 07:59:15

标签: nginx proxy wixcode

我们已经使用Wix.com开发了我们网站的新版本。由于我们在iOS上使用深层链接,因此我们需要place a text file in the website root。事实证明,Wix目前不支持这一点,尽管它们是considering it

"没问题,"我们认为。我们可以使用nginx反向代理来提供apple-app-site-association文件并将剩余的流量代理到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>

似乎Wix以某种方式检测代理的使用并阻止正常的页面内容。但是当我们检查这个时,我们发送的文件与原始请求完全相同。

关于Wix如何知道我们正在使用代理以及我们如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

原来这是特定于Wix呈现网站的方式。他们在index.html中嵌入了网站的网址,如果从其他网址加载网站,该网站将无法呈现。我不认为他们故意阻止这一点。对我而言,它看起来就像渲染代码的实现方式一样。

我们通过使用nginx子过滤器将index.html中嵌入的URL更改为我们所代理的URL来修复此问题。现在它工作正常。