在任何login尝试后,wp-admin将redirect回wp-login

我不知道是否要发布到wordpress stackexchange或这里,但由于这是更多的服务器configuration,我会在这里假设。

我的问题是一个configuration问题。 这是我的设置:

Docker实例在端口80上的内部docker IP地址上运行Docker实例运行nginx,它是反向代理(public-facing port 80)反向代理(public-facing)将docker实例与内部ip地址上的wordpress服务到internet

这个问题是一个相当独特的问题,因为当查看索引页面或其他页面(关于或其他页面)时,它工作得很好。 只有当login到wordpress这个问题发生。

  1. 我转到https://example.com/wp-admin并login
  2. 它会在login后redirect到https://example.com/wp-login.php (正确或不正确的信息,没有消息)
  3. 从那里它一次又一次地循环,每次我尝试login,没有迹象表明login已被处理。 没有“密码不正确”,只显示login页面。

这不是浏览器停止(无限循环)的意义上的redirect循环,它不会正确地处理login。 换句话说,我可以查看页面并提交login信息,但是它不会处理它。

我尝试禁用所有插件,甚至创build一个全新的安装没有插件 – 我有同样的问题。 它使我相信这是我的nginxconfiguration的一个问题,或者它是wordpress本身 – 我不确定在这一点上。

我正在使用此设置,以便我可以轻松地将新网站添加到服务器(这是专用服务器),如果需要的话,可以重新启动单个站点,而不必closures使用反向代理托pipe的所有站点。

MySQL能够被访问得很好,因为post和页面加载没问题。 只有当试图login这个问题发生。

我的反向代理configuration:

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的nginxconfiguration:

 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; } 

很可能你有login和pipe理设置的默认设置。

//安全login和pipe理员定义('FORCE_SSL_LOGIN',true); define('FORCE_SSL_ADMIN',true);

如果您允许不安全(非HTTPS)login,您应该可以通过HTTPlogin。 但是,您还需要允许不安全(非HTTPS)pipe理通过HTTP访问pipe理页面。

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