#http-headers #reverse-proxy #haproxy
Вопрос:
У меня следующая конфигурация в HAProxy:
frontend myfrontend
mode http
bind *:80
bind *:443 ssl crt /etc/ssl/private/mycert.pem
http-request redirect scheme https unless { ssl_fc }
acl acl_www hdr(host) -i www.example.com
use_backend webfarm if acl_www
backend webfarm
mode http
balance roundrobin
http-check expect ! rstatus ^5
server web1 mybackendserver:8080 check
Однако внутренний сервер (sharepoint) отвечает 302 найденным и заголовком местоположения:
Location: http://www.example.com:8080/Pages/Default.aspx
Что затем заставляет мой браузер перенаправлять на порт 8080 на www.example.com
Как мне заменить этот заголовок местоположения, чтобы исключить «:8080», чтобы опустить номер порта, используемый на серверной части? (Или есть другой способ)?
Спасибо
Комментарии:
1. Такие случаи обычно решаются путем настройки вашего приложения для генерации ссылок
https://www.example.com
вместо того, где оно запущено. Вы можете манипулировать заголовком HTTP в response (http-response set-header
), но проблема действительно проявляется, когда приложение генерирует неверные ссылки на подстраницы в теле HTML или даже выполняет какую-то магию JavaScript. Вы никогда не захотите туда идти. Вместо этого вы хотите правильно настроить свое приложение.