我的设置是:
Cas服务器(可以说url https://localhost:8443/cas-server/ )
托pipe在一个tomcat服务器上的cas-protected网站,运行cas-client(可以说( https://localhost:4448/myApp )
一个httpd apache2,带有mod auth cas和proxy_http,用作反向代理。 ( http://localhost:80 )
我想要做的是将反向代理configuration为这样的东西:
<Location /proxyTest > ProxyPass https://localhost:4448/myApp ProxyPassReverse https://localhost:4448/myApp </Location>
然后能写
https://localhost/proxyTest
代替
https://localhost:4448/myApp
这工作得很好,我得到redirect,我得到了机票,我得到authentication等。问题是,caslogin页面的url显示:
https://localhost:8443/cas-server/login?service=https%3A%2F%2Flocalhost%3A4448%2Fmyapp
login后,我的浏览器中显示的url是:
https://localhost:4448/myApp
所以redirect没有正常工作…在某个地方,我被送回到非代理URL。 最有可能由cas客户端。 我怎样才能build立这样一个代理工作正常,所有这一切都是透明的,一旦我有一个有效的票?
正在使用tomcat的AJP? 或者在cas-client中configuration和使用神秘的cas代理callback的东西,我从来没有理解如何使用? 别的东西?
ProxyPassReverse指令是重写Apache返回的URL的redirect等。请参阅此问题以获得简明的解释。
我想你在找什么
<Location /proxyTest> ProxyPass https://localhost:4448/myApp ProxyPassReverse https://localhost/proxyTest </Location>
这里你使用的是http(s),所以AJP不参与。 根据文档 ,AJP不需要ProxyPassReverse,所以你可以有类似的东西
<Location /proxyText> ProxyPass ajp://localhost:4448/myApp </Location>