编辑 – 我改变了这个问题,因为我错了错误来自哪里
我在使用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的高级选项卡下设置备用端口号。