Я пытаюсь использовать nginx в качестве обратного прокси (Сервер А) на мой сервер Wordpress (Сервер B) размещенный с использованием nginx. Я пытаюсь настроить свой URL-адрес в формате подкаталога, например example.com/blog
Это вроде работает, но с некоторыми проблемами.
Сервер А имеет сертификат LetsEncrypt SSL, поэтому он заставляет https
по всем маршрутам. Это проблема, потому что мое приложение wordpress загружает файлы .js и .css на http
.
После успешного входа в систему вместо перенаправления на example.com/blog/wp-admin, это идет в example.com/wp-admin
Мой Сервер А файл nginx conf с соответствующим блоком местоположения,
location /blog {
rewrite ^/blog/(.*)$ /$1 break;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_pass http://ip-address-for-server-b;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Мой Сервер B файл nginx conf
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name localhost;
location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt { log_not_found off; access_log off; allow all; }
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
location / {
# try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Также в моем wp-config.php
, Я добавил эти строки
define( 'WP_SITEURL', 'https://example.com/blog' );
define( 'WP_HOME', 'https://example.com/blog' );