我們有一個Grails web應用程序,運行在Apache2後面的tomcat7中。一切正常使用的ProxyPass與AJP協議罰款:切換到HTTPS時出現Grails + Tomcat + Apache錯誤
ProxyPass /ajp://localhost:9013/
ProxyPassreverse/ajp://localhost:9013/
,其中9013是我們在Tomcat的server.xml
AJP端口。
現在,我們的問題是這個。我們的Grails應用程序同時運行HTTP和HTTPS。當應用程序將一定區域內使用,Spring Security(Grails的Spring Security的核心插件)擊球時將您重定向使用HTTP到HTTPS的地址,例如:
http://www.example.com/secure/path
春季安全將您重定向到:
https://www.example.com/secure/path
但是現在,當重定向那裏,服務器掛起和最終火狐給出了「火狐已檢測到服務器重定向的方式,將永遠不會完成這個地址的請求。」錯誤。
我正確地認爲一些重定向與AJP代理變壞了嗎?任何人都可以提供更多關於這個設置如何工作的信息嗎?
在進一步看,我們發現以下幾點:
擊球時直接在Tomcat中的應用(通過IP和端口)一切工作100%。但是,當我們通過Apache時,Spring Security重定向不起作用。你不斷收到的Apache日誌如下:
staging.server.com:80 41.133.194.248 - - [05/Apr/2012:14:03:41 +0200] "GET /user/signup HTTP/1.1" 302 223 "http://staging.server.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:11.0) Gecko/20100101 Firefox/11.0"
staging.server.com:80 41.133.194.248 - - [05/Apr/2012:14:03:42 +0200] "GET /user/signup HTTP/1.1" 302 223 "http://staging.server.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:11.0) Gecko/20100101 Firefox/11.0"
staging.server.com:80 41.133.194.248 - - [05/Apr/2012:14:03:42 +0200] "GET /user/signup HTTP/1.1" 302 223 "http://staging.server.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:11.0) Gecko/20100101 Firefox/11.0"
staging.server.com:80 41.133.194.248 - - [05/Apr/2012:14:03:42 +0200] "GET /user/signup HTTP/1.1" 302 223 "http://staging.server.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:11.0) Gecko/20100101 Firefox/11.0"
...
,而不是重定向到https似乎阿帕奇神奇地使它再次嘗試HTTP。 謝謝
只有當重定向是否失敗,或者試圖直接進入一個HTTPS頁面時,它也失敗? – rlovtang 2012-04-05 12:59:09
僅在重定向。 – 2012-04-05 13:01:01