nginx https代理

我已经使用nginx作为redirect的代理

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

但是当我尝试redirect

 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(另一台机器)上。

我做错了什么 ?

你没有redirect,对吗? 浏览器继续说www.mydomain.com,它打开一个与你的nginx服务器的连接,然后打开一个连接到它实际上处理请求的机器,那台机器发送它的响应给nginx,nginx把它发送回客户端。

由于nginx是实际与客户交谈的那一个,所以它将需要它自己和客户端之间的SSL连接。 除非您担心内部networking的安全性,否则networking上的内部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连接。