【问题标题】:nginx HttpProxyModule configuration helpnginx HttpProxyModule 配置帮助
【发布时间】:2011-05-11 18:18:52
【问题描述】:

在允许访问 H2 数据库 Web 控制台之前,我正在尝试使用 nginx 强制执行基本身份验证。此控制台运行在https://localhost:8084

在我的 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 的网络服务器。此配置适用于第一个请求,但是 H2 服务器立即为“/login.jsp”发送 HTTP 重定向,该重定向作为“/login.jsp”而不是“/h2/login.jsp”发送到我的浏览器。这意味着当我的浏览器请求页面时,请求失败,因为只有位置“/h2”的 url 被传递到 H2 网络服务器。

如何将“/h2”附加到 H2 网络服务器返回的任何重定向?我尝试了以下方法:

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

但它没有做任何事情。

【问题讨论】:

    标签: ssl proxy nginx reverse-proxy h2


    【解决方案1】:

    这似乎是一个 nginx 配置问题。在 nginx.conf 中尝试 location /h2/(带有斜杠)而不是 location /h2。然后连接到http://localhost/h2/。您不需要任何反向代理配置,因为 H2 控制台工具不使用绝对 URL(它重定向到“login.jsp”而不是“/login.jsp”)。问题是http://localhost:/h2 是一个“文件名”,而http://localhost:/h2/ 是一个“目录”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-20
      • 1970-01-01
      • 2020-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      相关资源
      最近更新 更多