解决Nginx+wordpress无限重定向的问题
博主之前使用docker搭建了wordpress之后,打算使用Nginx做反向代理,同时开启https,但是一通配置之后却死活打不开网站,并且会疯狂重定向。一开始以为是我的Nginx配置不对导致,经过反复试验依然无法解决。突然灵光一闪,会不会是wordress自身的问题?
Nginx配置
通过Nginx监听443端口,转发到wordpress端口上,配置上非常简单
server {
server_name your_domain;
listen 443 ssl http2;
ssl_certificate /opt/www/cert/ssl.cer;
ssl_certificate_key /opt/www/cert/ssl.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
access_log /opt/www/log/domain.access.log;
error_log /opt/www/log/hldomainab.error.log;
location / {
proxy_pass http://127.0.0.1:10081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
wordpress
按照上面的配置,正常来说就可以了,但是wordpress却不行,那是因为wordpress本身还需要开启SSL才行。
- 打开wordpress安装目录下的
wp-config.php
文件 - 在其中加入代码
## 加入下面3行代码 $_SERVER['HTTPS'] = 'on'; define('FORCE_SSL_LOGIN', true); define('FORCE_SSL_ADMIN', true); /* That's all, stop editing! Happy publishing. */ /** Absolute path to the WordPress directory. */ if ( ! defined( 'ABSPATH' ) ) { define( 'ABSPATH', __DIR__ . '/' ); }
注意必须加在
if ( ! defined( 'ABSPATH' ) ) {
上面 - 然后重启页面,刷新下浏览器就可以了