解决Nginx+wordpress端口转发无限重定向的问题

作者 胡萝虎 日期 2022-03-14
解决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' ) ) {上面

  • 然后重启页面,刷新下浏览器就可以了

“扫一扫接着看”