2010-11-18 97 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/是'目录'。