每次登录尝试后,wp-admin 都会重定向回 wp-login

每次登录尝试后,wp-admin 都会重定向回 wp-login

我不确定是否要将其发布到 wordpress stackexchange 或这里,但由于这更多的是服务器配置,我假设在这里。

我的问题是配置问题。这是我的设置:

Docker 实例在端口 80 上的内部 docker IP 地址上运行 Docker 实例运行 nginx,它是反向代理(面向公众的端口 80),反向代理(面向公众)通过内部 ip 地址将 wordpress 与 docker 实例一起提供给互联网

这个问题比较特殊,因为在查看主页或其他页面(关于或其他页面)时,它运行正常。只有登录 wordpress 时才会出现此问题。

  1. 我去https://example.com/wp-admin并登录
  2. 它会将我重定向到https://example.com/wp-login.php登录后(信息正确或不正确,无消息)
  3. 从那时起,每次我尝试登录时,它都会一次又一次地循环,没有任何迹象表明登录已处理。没有“密码不正确”,只是显示登录页面。

从浏览器停止重定向循环(无限循环)的角度来看,这并非重定向循环,它只是无法正确处理登录。换句话说,我可以查看页面并提交登录,但它无法处理它。

我尝试禁用所有插件,甚至创建一个没有插件的全新安装 - 我仍然遇到同样的问题。这让我相信这要么是我的 nginx 配置问题,要么是 wordpress 本身的问题 - 我现在还不确定。

我使用此设置,以便我可以轻松地将新网站添加到服务器(这是一个专用服务器),如果需要,我可以重新启动各个网站,而无需关闭使用反向代理托管的所有网站。

mysql 可以正常访问,因为帖子和页面加载正常,没有问题。只有在尝试登录时才会出现此问题。

我的反向代理配置:

server {
    listen 80;
    listen [::]:80;
    server_name _;
    return 444;
}

server {
    listen 80;
    listen [::]:80;
    server_name example.com;

location / {
    proxy_read_timeout    90;
    proxy_connect_timeout 90;
    proxy_redirect        off;

    proxy_set_header      X-Real-IP $remote_addr;
    proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header      X-Forwarded-Proto http;
    proxy_set_header      X-Forwarded-Port 80;
    proxy_set_header      Host $host;

    proxy_pass http://172.17.0.4:80;
}

port_in_redirect off;
}

我的 WordPress nginx 配置:

server {
    listen 80;
    server_name example.com;
    index index.php index.html default.php default.html index.htm deafult.htm;

    root /mrparker;
    location / {
            try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    server_tokens off;
    port_in_redirect off;
}

答案1

您很可能已设置了登录和管理的默认设置。

// 安全登录和管理 define('FORCE_SSL_LOGIN', true); define('FORCE_SSL_ADMIN', true);

如果您允许不安全(非 HTTPS)登录,您应该能够通过 HTTP 登录。但是,您还需要允许不安全(非 HTTPS)管理通过 HTTP 访问管理页面。

最好设置 HTTPS 并安全地访问这些功能。您可以使用自签名证书、Let's Encrypt 的证书或来自任意数量的证书颁发机构的证书。

相关内容