我遇到了一点问题。我们在 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 特定内容放在后者。这里没有问题。尝试做同样的事情。