В ближайшее время у меня будет 3 сервера nginx. Одним из них является обратный прокси-сервер для SSL для двух других. Так, например, я иду к:
https://www.mysitename.com/site1
Два других сервера в этом примере - это site1 и site2. Я установил SSL-сертификат на прокси-сервере и хочу использовать обратный прокси-сервер (SSL не требуется, так как все 3 находятся во внутренней сети). В целях тестирования у меня nginx прослушивает 443 для SSL / обратный прокси, прослушивает порт 8081, который является приложением rails для site1, и 8082 для site2.
У меня есть это...
server {
listen 443;
server_name mysitename.com;
ssl on;
ssl_certificate ssl/mysitename.com.crt;
ssl_certificate_key ssl/mysitename.com.key;
keepalive_timeout 60;
location /site1 {
proxy_pass http://localhost:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect http:// https://;
}
location /site2 {
proxy_pass http://localhost:8082;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect http:// https://;
}
}
Поэтому, когда я захожу на сайт www.mysitename.com/site1, я хочу, чтобы он в основном возвращал то, что обычно приходит с localhost: 8081 (или позже - внутренний IP для другого сервера).
Есть ли способ заставить его убрать "site1" из вызова localhost? Кажется, он использует localhost: 8081 / site1. Сайты site1 и site2 имеют вид «/ login / index» или «/ what / list» и т. Д., Но без «site1».
В контроллерах сайта также есть перенаправления (использующие redirect_to), которые идут от таких вещей, как / login / index и / what / list.
Я собираюсь изменить дизайн URL сайта, чтобы использовать site1? Или прокси-сервер NGINX может это выяснить?
Спасибо.
Ответы:
Цитирование http://nginx.org/r/proxy_pass :
То есть вы должны использовать
proxy_pass
так:Обратите внимание на завершающем
/
вproxy_pass
директиве - он заменит часть исходного URI , совпавший с местом, то есть/site1/
.источник