Nginx反向代理不会加载HTTPS站点

今天是我第一次使用Nginx。 通过遵循一些指南,我将其设置为专用的反向代理。 这就是我想重新创build – http://www.integratedwebsystems.com/wp-content/uploads/2010/06/reverse_proxy.jpg

我有端口80工作正常,但通过HTTPS加载任何东西给我错误的HTTP内容不安全。 尝试通过互联网通过反向代理加载任何HTTPS网站看起来非常错误。 在内部加载工作得很好。

例子 – http://i.imgur.com/i9mYgYe.png – 这应该是WordPress的pipe理控制台,它看起来像90年代的东西。

下面是我使用的nginxconfiguration –

server { listen 80; server_name domain1.com; location / { proxy_pass http://192.168.1.149/; proxy_set_header Host $host; } } # HTTPS server server { listen 443 ssl; server_name domain1.com; error_log /tmp/error.log; ssl on; ssl_certificate_key /etc/nginx/ssl/server.key; ssl_certificate /etc/nginx/ssl/server.crt; location / { proxy_pass http://192.168.1.149/; proxy_set_header Host $host; } } 

任何人都可以告诉我什么,我错过了HTTPS正确地通过反向代理工作?

你不会错过任何东西; 你正确configuration了nginx。

这里的问题是WordPress认为它应该生成HTTP链接。 当您尝试通过HTTPS访问它时,它仍然会使用http://生成所有的链接,因此无法加载(没有在浏览器中显式加载不安全的内容)。

有WordPress插件,将您的pipe理控制台转换为https,如果这是你想要做的。 您还可以编辑您的博客的常规设置,并将整个网站快速,轻松地转换为https,无需插件。

如果你能负担得起,你可以尝试重新encryptionstream量:

 location / { proxy_pass https://192.168.1.149/; proxy_set_header Host $host; } 

应用服务器显然会知道SSL。

另一种方法是configuration一个备用的Apache端口,例如

 location / { proxy_pass http://192.168.1.149:444/; proxy_set_header Host $host; } 

与一个虚拟主机设置适当的标志,使Wordpress / PHP认为该请求实际上已被encryption,例如

 SetEnv SSL=on 

捕捉所有必要/足够的设置可能会非常棘手。