Назад | Перейти на главную страницу

Nginx меняет перенаправление на неправильный порт, когда я обращаюсь к нему через балансировщик нагрузки

Изменить - я изменил вопрос, поскольку ошибался в том, откуда возникла ошибка.

У меня возникли проблемы с развертыванием Openam, и мне было интересно, можете ли вы помочь.

Моя установка выглядит следующим образом: 2 сервера OpenAM установлены за балансировщиком нагрузки (HAproxy). Балансировщик нагрузки настроен за двумя обратными прокси (nginx). Два обратных прокси обслуживаются за другим балансировщиком нагрузки (haproxy). Таким образом, запрос будет проходить через Haproxy> nginx> Haproxy> openam

Я могу без проблем получить доступ к веб-консоли OpenAM через обратные прокси. На этом уровне все отлично работает.

Проблема в том, что я получаю доступ к openam через балансировщик нагрузки перед серверами nginx.

Мой сервер nginx работает на порту 443. Когда я обращаюсь к openam через haproxy> nginx> haproxy> openam, nginx перенаправляет браузер, используя порт 443. Вот где возникает проблема.

URL-адрес балансировщика нагрузки, с которым я обращаюсь к странице входа, - http: / loadbalancerHostname: 8090: openam / Login / UI. Я могу войти успешно. Но после того, как логин изменится на http: / loadbalancerHostname: 443: openam /. Порт не должен меняться.

Почему nginx меняет порт и как это остановить?

Конфигурация nginx:

server {
listen 443;
server_name  oamlb1;


location / {
    proxy_pass        http://oamlb1.mydomain.com:8080;
    proxy_set_header  X-Real-IP $remote_addr;
}
location /openam {
    proxy_pass        http://oamlb1.mydomain.com:8080;
    proxy_set_header  X-Real-IP $remote_addr;
    proxy_set_header  Host oamlb1.mydomain.com:8080;

 }
  }

haproxy config: (Этот файл предназначен для серверов. Файл для обратных прокси идентичен, но указывает на обратные прокси)

listen http_proxy :8090
       mode http
       balance roundrobin
       option httpclose
       option forwardfor
       server webA oamreverseproxy1.mydomain.com:443
       option          forwardfor

Спасибо

Думаю, у вас проблемы с ProxyPassReverse: http://wiki.nginx.org/LikeApache

После успешной аутентификации OpenAM отправляет HTTP 302, чтобы перенаправить клиента на URL перехода или на URL перехода по умолчанию (302 не является кодом ошибки ..).

Экран входа в OpenAM отправит вашему браузеру http-редирект после входа в систему. Перенаправление основано на заголовке HTTP-узла из исходного сообщения в защищенное приложение.

Попробуйте установить альтернативный номер порта на вкладке «Дополнительно» в конфигурации агента openam.