所以我为我的 wordpress 进行了这样的设置。
所有服务器均在 Centos 7 MariaDB 10.4.17 Php-FPM 7.4 PHP 7.4 NginX 上运行
服务器 1,前端负载平衡服务器服务器 2-3-4,使用 NginX 服务的 wordpress 应用程序服务器 4 MariaDB
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-config
<?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;
}
}
}