我不知道是否要发布到wordpress stackexchange或这里,但由于这是更多的服务器configuration,我会在这里假设。
我的问题是一个configuration问题。 这是我的设置:
Docker实例在端口80上的内部docker IP地址上运行Docker实例运行nginx,它是反向代理(public-facing port 80)反向代理(public-facing)将docker实例与内部ip地址上的wordpress服务到internet
这个问题是一个相当独特的问题,因为当查看索引页面或其他页面(关于或其他页面)时,它工作得很好。 只有当login到wordpress这个问题发生。
这不是浏览器停止(无限循环)的意义上的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的证书或来自任意数量证书颁发机构的证书。