Nginx 终止 WordPress 的 SSL

Nginx 终止 WordPress 的 SSL

我遇到了一点问题。我们在 ngnix 代理后面运行一个 wordpress 博客,并希望在 nginx 端终止 SSL。我们当前的 nginx 配置是

upstream admin_nossl {
    server 192.168.100.36:80;
}


   server {
        listen       192.168.71.178:443;
        server_name  host.domain.com;

        ssl                  on;
        ssl_certificate      /etc/nginx/wild.domain.com.crt;
        ssl_certificate_key  /etc/nginx/wild.domain.com.key;
        ssl_session_timeout  5m;
        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_prefer_server_ciphers   on;
        ssl_session_cache  shared:SSL:10m;
        ssl_ciphers RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;

        location / {
           proxy_read_timeout 2000;
           proxy_next_upstream error;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header Host $http_host;
           proxy_redirect off;
           proxy_max_temp_file_size 0;
           proxy_pass http://admin_nossl;
           break;

这似乎不起作用。如果我能打https://host.domain.com但据我所见,它很快又切换回不安全状态。

有什么指点吗?

答案1

您将会遇到困难,因为 Wordpress 到处都有重定向,其中许多都在 .htaccess 文件中。

如果您在设置中指定“Wordpress URL”以及在整个配置中将对 URL 的任何引用指定为 https,它可能会起作用。我怀疑这是您的 ngix 配置,但使用未运行 Wordpress 的其他 VirtualHost 进行测试会很容易。

答案2

我不同意华纳的观点。这应该非常简单。唯一的问题是 Apache 认为所有请求都来自同一个 IP,而您已经使用 X-real-ip 标头修复了这个问题。看起来您没有listen在服务器块中添加该选项。

我有两个服务器块,server_name一个监听 80 端口,另一个监听 443 端口。我把所有 SSL 特定内容放在后者。这里没有问题。尝试做同样的事情。

相关内容