Как мне заменить номер порта в заголовке ответа о местоположении на HAProxy?

#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. Вы никогда не захотите туда идти. Вместо этого вы хотите правильно настроить свое приложение.