У меня работает два VPS.Один работает под управлением HAProxy, а другой - под управлением WordPress.На обоих VPS включена поддержка частной сети, и я могу curl
штрафовать сайт WordPress с сервера HAProxy, используя его частный IP-адрес.
Вот настройки URL для моего сайта WordPress:
В этом случае HAProxy выполняет SSL-завершение, потому что позже я планирую установить больше сайтов WordPress со следующими URL-адресами:
- my-website.com / blog (WordPress # 1)
- my-website.com / foo (WordPress # 2)
- my-website.com / bar (WordPress # 3)
Вот мой конфигдля HAProxy.
global
# default global config goes here
maxconn 2048
tune.ssl.default-dh-param 2048
defaults
log global
mode http
option forwardfor
option http-server-close
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
stats enable
stats uri /stats
stats realm Haproxy\ Statistics
stats auth xxx:xxx
frontend my-wordpress-frontend
bind *:443 ssl crt /etc/ssl/private/my-website.com.pem
option http-server-close
http-request set-header X-Forwarded-Proto https if { ssl_fc }
acl blog path_beg /blog
acl wpadmin path_beg /wp-
acl blog_search query -m reg ^s=.*$
acl blog_preview query -m reg ^p=.*$
acl root path /
redirect location https://my-website.com/blog/ if root
use_backend my-wordpress-backend if blog OR blog wpadmin OR blog blog_search OR blog blog_preview
default_backend my-wordpress-backend
backend my-wordpress-backend
redirect scheme https if !{ ssl_fc }
reqrep ^([^\ :]*)\ /blog/(.*) \1\ /\2
reqrep ^([^\ :]*)\ /blog/wp-admin/(.*) \1\ /\2
cookie SERVERID insert indirect nocache
server www-1 private_ip_address:80 check cookie
Все выглядит хорошо, кроме одной вещи.Я могу видеть страницу входа на https://my-website.com/blog/wp-login.php
.Но после входа в систему он перенаправляет меня на https://my-website.com/wp-admin
.
Это не то, что я хочу.Я ожидал получить https://my-website.com/blog/wp-admin
.
Я добавил это в мой wp-config.php , но это не помогло:
// Start custom config ---
define( 'FORCE_SSL_ADMIN', true );
define('FORCE_SSL_LOGIN', true);
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';
// End custom config ---
/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';
Я пропустилчто-то здесь?Что здесь не так?