В настоящее время у нас есть nginx, сидящий перед нашими серверами приложений puma (обслуживающий приложения rails). Недавно мы разделили «маркетинговые» страницы на собственное репо и приложение.
По сути, у нас есть статический контент, обслуживаемый приложением, развернутым в netlify, но у нас есть приложение rails, которое берет на себя, как только пользователи входят в систему.
Любой совет, как его настроить? Значит, мы используем один домен для обоих? Изначально мы думали создать поддомен для статического контента, такого как (static.mydomain.com), и обслуживать все оттуда, но у этого подхода есть серьезные недостатки (домен и поддомен не имеют одинакового SEO).
Может ли nginx выполнить какое-то изменение URL-адреса, чтобы наше статическое приложение на netlify появилось в нашем домене? Или кто-нибудь по-другому решил эту проблему?
Обновить:
Я смог использовать предложение Джоша и в итоге получил следующее:
server {
расположение ^ ~ / about {proxy_set_header X-Forwarded-Server $ host; proxy_set_header X-Forwarded-For $ remote_addr; proxy_set_header X-Real-IP $ remote_addr; proxy_pass http://yourdeployment.netlify.com/about; }}
Однако теперь есть некоторые ресурсы (js / css / json), которые загружают netlify с roor url. http://yourdeployment.netlify.com/somescrip-someshavalue.sj что мой nginx начинает получать с mydomain.com.
Есть ли способ перехватить их, или мне нужно вручную добавить правила перенаправления, как в случае добавления блока местоположения для каждого из ресурсов?
Вы должны иметь возможность обслуживать приложение netlify на пути, если хотите, используя proxy_pass
в nginx.
Такая конфигурация должна работать:
server {
# ...
location ^~ /about {
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
# remove the preceding "/about/" from the URL
rewrite ^/about/(.*) /$1 break;
# pass it on to the netlify app
proxy_pass http://yourdeployment.netlify.com;
}
}
Путь может быть любым. Если вы хотите, чтобы использовался субдомен, вы должны настроить другой server {}
блок с server_name
сопоставление этого субдомена и location / {}
с директивой прохождения прокси.