我有一个处理 SSL 终止和 mod_security 的反向代理。问题是,在 sso 到达后端服务器后,它会尝试直接使用 cas 进行身份验证,而不是仍然通过代理进行身份验证,并且由于后端服务器在我们的防火墙内,并且只有代理在 cas 中,因此身份验证失败。
反向代理的当前配置:
<Location /test/>
ProxyPreserveHost on
RequestHeader set WL-Proxy-SSL true
ProxyPass /TEST/ http://backend.server.com:7010/
ProxyPassReverse http://backend.server.com:7010/
ProxyHTMLURLMap http://backend.server.com:7010
Order allow,deny
Allow from all
</Location>
<Location /sso/>
ProxyPreserveHost on
RequestHeader set WL-Proxy-SSL true
ProxyPass http://backend.server.com:7007/sso/
ProxyPassReverse http://backend.server.com:7007/sso/
ProxyHTMLURLMap http://backend.server.com.edu:7007/sso
Order allow,deny
Allow from all
是不是我缺少一些设置导致后端服务器无法继续使用代理名称?
答案1
我见过的大多数支持负载均衡器或反向代理的应用程序都有一个设置,例如“基本 URL”,您可以将其设置为前端的 URL。这允许应用程序在自身中创建适当的超链接和邮件通知等内容。