
所以我對我的 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;
}
}
}