2010-11-18 93 views
1

我試圖在允許訪問H2數據庫Web控制檯之前使用nginx強制執行基本身份驗證。此控制檯https://localhost:8084nginx HttpProxyModule配置幫助

運行在我的nginx.conf,我有:

location /h2 { 
    auth_basic "Restricted"; 
    auth_basic_user_file htpasswd; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header Host $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto https; 
    proxy_pass https://localhost:8084/; 
} 

我希望它做的是/ H2至H2的Web服務器代理請求。此配置適用於第一個請求,但是H2服務器立即爲「/login.jsp」發送HTTP重定向,該請求將作爲「/login.jsp」發送到我的瀏覽器,而不是「/h2/login.jsp」。這意味着,當我的瀏覽器請求頁面時,請求失敗,因爲只有地址「/ h2」的URL纔會傳遞到H2 web服務器。

如何將「/ h2」附加到H2網絡服務器返回的任何重定向?我嘗試以下內容:

proxy_redirect https://localhost:8084/ https://$host/h2; 

但它沒有做任何事情。

回答

1

這似乎是一個nginx配置問題。在nginx.conf中嘗試使用location /h2/(帶有斜線)而不是location /h2。然後連接到http://localhost/h2/。您不需要任何反向代理配置,因爲H2 Console工具不使用絕對URL(它重定向到「login.jsp」而不是「/login.jsp」)。問題是http://localhost:/h2是'文件名',而http://localhost:/h2/是'目錄'。