在 Nginx 負載平衡器上執行 WordPress 時出現錯誤“頁面未正確重新導向”

在 Nginx 負載平衡器上執行 WordPress 時出現錯誤“頁面未正確重新導向”

所以我對我的 WordPress 進行了這樣的設定。

所有伺服器都運行在 Centos 7 MariaDB 10.4.17 Php-FPM 7.4 PHP 7.4 NginX 上

伺服器 1,前端負載平衡伺服器 伺服器 2-3-4,使用 NginX 伺服器 4 MariaDB 提供服務的 WordPress 應用程式

Nginx 負載平衡設定在每個伺服器 2-3-4 上都可以使用標準 info.php 正常運作。他們使用循環賽進行輪換。

WordPress 本身在伺服器 2-3-4 上運作良好。我必須更改 wp-options DB 中 WordPress 的網站 URL 和主 URL 以反映伺服器的 IP 位址。例如,如果我正在測試 wp 伺服器 2,則網站 url 和主頁 url 將指向伺服器 2。

第二次我將 LB 下的所有伺服器 2-3-4 與 wordpress 組合在一起時,出現此錯誤「頁面未正確重定向」。我不太確定是否需要進行某些設定才能使 WP 在 Nginx 負載平衡器下工作。有什麼建議是如何解決這個問題嗎?請幫忙?

我的 LB Nginx 設定。

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
include /etc/nginx/conf.d/*.conf;

events {
    worker_connections 1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    root         /var/www/wp;

    sendfile        on;
    keepalive_timeout  65;



log_format upstreamlog '$server_name to : $upstream_addr [$request] '
'upstream_response_time $upstream_response_time '
'msec $msec request_time $request_time';

upstream big_server_com {
    ip_hash;
    server 192.168.1.32;
    server 192.168.1.33;
    server 192.168.1.34;



}

    server {
       server_name myserver.net wp.myserver.net;

#acces_log /var/log/nginx/access.log upstream.log;

    location ~ \.php$ {

        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-Proto $scheme;


     fastcgi_pass   unix:/run/php-fpm/wp.sock;
        fastcgi_index index.php;
     proxy_pass      http://big_server_com;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    try_files   $uri $uri/ /index.php?$query_string;
            }
            index  index.php;
        error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/myserver.net/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/myserver.net/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
#    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    ssl_dhparam /etc/ssl/certs/dhparam.pem; # managed by Certbot

}     
   server {
    if ($host = myserver.net) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = myserver.net) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


        listen       80;
     server_name myserver.net wp.myserver.net;
    return 404; # managed by Certbot

}
}

我的 WordPress wp 配置

<?php

define( 'DB_NAME', 'wordpress' );

/** MySQL database username */
define( 'DB_USER', 'admin' );

/** MySQL database password */
define( 'DB_PASSWORD', '*************' );

/** MySQL hostname */
define( 'DB_HOST', '192.168.1.34' );

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
    define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

/**#@-*/


$table_prefix = 'wp_';
define( 'WP_DEBUG', false );

/* That's all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
    define( 'ABSPATH', __DIR__ . '/' );
}

/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';


if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) 
$_SERVER['HTTPS']='on';

define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);

define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);

後端伺服器上的NginX配置

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
include /etc/nginx/conf.d/*.conf;

events {
    worker_connections 1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    root         /var/www/wp;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
     listen 192.168.1.32:80;
        server_name  wp2.myserver.net;
    location ~ \.php$ {
     fastcgi_pass   unix:/run/php-fpm/wp.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    try_files   $uri $uri/ /index.php?$query_string;
            }
            index  index.php;
        error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

    } 

}

相關內容