Я пытаюсь настроить прокси nginx, что я делал много раз раньше.Но на этот раз из-за особых требований мне тяжело, и я решил обратиться за помощью.
У меня есть сервер, на котором работает nginx.Допустим, это на www.example.com.
Я хочу перенаправить весь трафик, приходящий на "www.example.com/test", на другой адрес, скажем, "www.another.com".Я не хочу, чтобы "тестовая" часть URL прошла, но в то же время я хочу, чтобы она оставалась в исходном запросе, даже если целевой сервер выполняет перенаправление.
Но это неРабота.Если я захожу на «www.example.com/test», он корректно перенаправляется на «www.another.com».Но когда выполняется перенаправление на целевой сайт в «/ login» (таким образом, пункт назначения выглядит как «www.another.com/login»), вместо этого URL в браузере переписывается на «www.example.com/login», вместоиз "www.example.com/test/login", и это то, что мне нужно.
Я перепробовал много разных конфигураций, моя самая последняя из них:
server {
listen 443;
server_name www.example.com;
### SSL CONFIG - not relevant here ###
location /test/ {
proxy_pass https://www.another.com/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_redirect https://www.another.com/ /idm;
}
location / {
### Handling for URLS other than /test
}
}
У меня естьпопытался без proxy_redirect или установив его по умолчанию "off", установив "www.another.com" в качестве заголовка хоста, удалив все заголовки и выполнив просто proxy_pass и удалив косые черты в "location" и "proxy_pass" - результаттакой же или хуже (в случае косой черты).
Любая помощь очень ценится!