nginx https 代理

nginx https 代理

我已经使用 nginx 作为代理来重定向

http://www.mydomain.com ==> http://192.168.0.1

但当我尝试重定向

https://www.mydomain.com ==> https://192.168.0.1

这是行不通的 !

我的nginx.conf:

server {
  listen 443;
  server_name www.mydomain.com;

  location / {
    proxy_pass https://192.168.0.1;
  }
}

当我去的时候,https://192.168.0.1它工作正常!nginx 位于 192.168.0.2(另一台机器)。

我做错了什么 ?

答案1

您没有重定向,对吧?浏览器继续说 www.mydomain.com,它打开与您的 nginx 服务器的连接,该服务器又打开与实际处理请求的计算机的连接,该计算机将其响应发送给 nginx,然后 nginx 将其发送回客户端。

由于 nginx 实际上是与客户端通信的,因此它需要自身与客户端之间建立 SSL 连接。除非您担心内部网络安全,否则网络上的内部 SSL 连接并非必需。

您必须使用 nginx ssl 模块。http://wiki.nginx.org/NginxHttpSslModule

server {
    server_name www.mydomain.com;
    listen 443;
    ssl on;
    ssl_certificate /usr/local/nginx/conf/server.crt;
    ssl_certificate_key /usr/local/nginx/conf/server.key;
    location / {
        proxy_pass https://192.168.0.1;
    }
}

您当前的设置可能适用于http://mydomain.com:443因为它是非 SSL 连接。

相关内容