2015-10-01 33 views
0

我有。我們已通知nginx的服務基於以下配置的應用程序,它被送達的Apache Tomcat在端口8080上Java Web應用程序:成功登錄後併發症的Tomcat JDBCRealm重定向

location ~ ^/conference/(.*)$ { 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_pass http://127.0.0.1:8080/$1; 
} 

,你可以請參閱應該在目標爲此應用程序的所有請求的URL中存在「會議」關鍵字。

我們使用JDBCRealm進行身份驗證。因此,可以說我在地址欄中輸入了'http://example.com/conference/conferencearchive'。在登錄表單中輸入有效的用戶名和密碼後,我希望將其重定向到我要求的頁面,但我將重定向到'http://example.com/conferencearchive/'。

url會議部分會發生什麼?

回答

0

看到的位置匹配^ /會議/(.*)$

在ProxyPass指令的$ 1僅提供在括號中的URL的一部分括號。

+0

感謝您的回覆。但這不是缺陷。我們的應用程序在tomcat webapps的ROOT目錄中,所以當nginx收到這樣的請求時,它會正確地刪除url的'會議'部分,並將其餘部分代理到tomcat。問題是,當我們從JDBCRealm重定向時,URL中沒有「會議」,所以nginx無法與我們的指令相匹配。 – mdoust

+0

哦對。在這種情況下,我會在檢測登錄的地方添加一個ServletFilter(在doFilter之前檢查缺少主體並在之後有主體,然後將重定向發送到主頁。 – bknights