Прокси-сайт через nginx приводит к пустой странице

Мы использовали Wix.com для разработки новой версии нашего сайта. Поскольку мы используем глубокие ссылки на iOS, нам нужно поместить текстовый файл в корень сайта. Оказывается, Wix не поддерживает это в настоящее время, хотя они рассматривают это.

"Нет проблем", - подумали мы. Мы можем просто использовать обратный прокси-сервер 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 ответ

Решение

Оказывается, это зависит от того, как Wix отображает сайт. Они встраивают URL сайта в свои index.html и сайт не будет отображаться, если он загружен с другого URL. Я не думаю, что они намеренно блокируют это. Для меня это выглядит как побочный эффект от реализации кода рендеринга.

Мы исправили это с помощью подфильтра nginx для изменения URL-адреса, встроенного в index.html к тому, от которого мы проксируем. Теперь все отлично работает.

Другие вопросы по тегам