当我通过负载平衡器访问它时,Nginx将redirect改变为错误的端口

编辑 – 我改变了这个问题,因为我错了错误来自哪里

我在使用Openam部署时遇到了一些问题,并想知道您是否可以提供帮助。

我的设置如下:2个OpenAM服务器设置在负载平衡器(HAproxy)的后面。 负载平衡器设置在两个反向代理(nginx)之后。 两个反向代理服务器在另一个负载均衡器(haproxy)之后。 所以一个请求将通过Haproxy> nginx> Haproxy> openam

我可以通过反向代理访问OpenAM Web控制台,而不会出现问题。 一切工作正常在这个水平。

问题是当我通过nginx serevrs前面的负载均衡器访问openam的时候。

我的nginx服务器在端口443上运行。当我通过haproxy> nginx> haproxy> openam访问openam时,nginx使用端口443redirect浏览器。这是发生问题的地方。

我访问login页面的负载均衡器url是http:/ loadbalancerHostname:8090:openam / Login / UI。 我可以成功login。 但是,在login后更改为http:/ loadbalancerHostname:443:openam /。 港口不应该改变。

为什么nginx改变端口,我怎么能阻止它?

nginxconfiguration:

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

validation成功后,OpenAM会发送HTTP 302以将客户端redirect到goto URL或默认的goto URL(302不是错误代码..)。

OpenAMlogin屏幕将在login后向您的浏览器发送httpredirect。 redirect基于从原始邮件到受保护应用程序的HTTP主机头。

尝试在openam代理configuration的高级选项卡下设置备用端口号。