NGINX 作为 https 到 http 代理

NGINX 作为 https 到 http 代理

我在一台私有 IP 为 192.168.17.70 的机器上设置了 nginx。它使用自签名证书(此部分正在运行)将来自公共 IP 的 https 请求转发到 192.168.17.29 上的 Web 设备。此设备上的应用程序不支持 SSL。它需要用户名和密码才能登录。

当我访问代理服务器时,它似乎将 https 请求转发到设备,并且我从设备上的 Web 应用程序获得登录对话框。它不接受凭据,而是再次提示我。直接登录到在其私有 IP 地址上运行 nginx 的计算机会给我登录提示并接受凭据,然后正确显示来自设备的内容。

我怀疑问题出在 http 和 https 模式之间的转换,但我似乎陷入了困境。这是我在搜索中尝试了多种解决方案后得到的结果:

upstream backend {
    server 192.168.17.29:80;
}

server {

    listen 443 ssl http2;
    server_name xxx.xxx.xxx.xxx; # my real IP address is here
    include snippets/self-signed.conf;
    include snippets/ssl-params.conf;

    location / {

        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header    X-Scheme $scheme;
        proxy_redirect http:// $scheme://;
    }

}

server {
    listen 80;
    location / {
        proxy_pass http://192.168.17.29;
    }


}

我是这方面的新手,所以任何帮助我都会很感激。我发布的内容就是按照我描述的方式运行的。

之前我有一个配置,它会接受我的用户名和密码,但不会将非 SSL Web 设备的内容呈现到客户端机器。

谢谢史蒂夫

相关内容