Apache-2.2

Apache 反向代理背後的受 Cas 保護的站點

  • March 6, 2014

我的設置是:

  • Cas伺服器(讓我們說 url https://localhost:8443/cas-server/
  • 託管在 tomcat 伺服器上的受 cas 保護的網站,執行 cas-client(比如說 ( https://localhost:4448/myApp)
  • 帶有 mod auth cas 和 proxy_http 的 httpd apache2,用作反向代理。( http://localhost:80)

我想要做的是將反向代理配置為如下所示:

<Location /proxyTest >
     ProxyPass https://localhost:4448/myApp
     ProxyPassReverse https://localhost:4448/myApp
</Location>

然後就可以寫了

https://localhost/proxyTest

代替

https://localhost:4448/myApp

這很好用,我被重定向了,我得到了 cas-ticket,我得到了身份驗證等。問題是 cas-login 頁面 url 顯示:

https://localhost:8443/cas-server/login?service=https%3A%2F%2Flocalhost%3A4448%2Fmyapp

登錄後,我的瀏覽器中顯示的網址是:

https://localhost:4448/myApp

所以重定向不能正常工作……在此過程中,我被發送回非代理 URL。最有可能由 cas-client 提供。如何設置這樣的代理以正常工作,以便在我獲得有效票證後所有這些都是透明的?

是否涉及使用tomcat的AJP?或者在cas-client中配置和使用神秘的cas代理回調的東西,我一直不明白怎麼用?別的東西?

ProxyPassReverse 指令用於重寫 Apache 在重定向等時返回的 URL。有關簡明說明,請參閱此問題

我想你正在尋找的是

<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>

引用自:https://serverfault.com/questions/548504