Прокси-сайт через 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
к тому, от которого мы проксируем. Теперь все отлично работает.