Ngnix / Wordpress бесшовная папка перенаправления в подкаталог с прокси-проходом - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть два сервера для одного домена

  • сервер A, на котором размещен mywebsite.com, и
  • сервер B, на котором размещен blog.mywebsite.com (блог WordPress).

Моя цель - создать для моего блога бесшовную ссылку: http://mywebsite.com/test23 с содержимым сервера B.

Мое первое перенаправление работает (location / test23).Я могу получить домашнюю страницу и другие страницы, но не могу подключиться к своему администратору WP.Я получаю 404 на mywebsite.com/test23/wp-login.php.

Сервер Confi-файл nginx

    index index.php index.html index.htm;

    server_name mywebsite.com;

     location / {
             try_files $uri $uri/ /index.php?$args;
     }

     location ~ \.php$ {
             include snippets/fastcgi-php.conf;
             fastcgi_pass unix:/run/php/php7.0-fpm.sock;
             fastcgi_read_timeout 1000;
     }         

      location /test23 {
             rewrite ^/test23(.*) /$1 break;
              proxy_pass http://blog.mywebsite.com/;
     }

      location /test23/wp-admin {
             rewrite ^/test23/wp-admin(.*) /$1 break;
             proxy_pass http://blog.mywebsite.com/wp-admin;
     }

Я думаю, мне нужно управлятьисключение папки wp-admin?Я немного потерян: D

1 Ответ

0 голосов
/ 19 февраля 2019

Поскольку вы используете прокси-путь "/ test23" и используете правило перезаписи, чтобы связать что-либо с использованием этого адреса, вам не нужен второй блок местоположения.

Попробуйте использовать это:

location /test23 {
             rewrite ^/test23(/.*)$ /$1 break;
              proxy_pass http://blog.mywebsite.com/;
     }

Если вы не установили прокси-правила, этот блок также может выглядеть следующим образом:

location /test23 {
                 rewrite ^/test23(/.*)$ /$1 break;
                 proxy_pass http://blog.mywebsite.com/;
                 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 https;
                 proxy_redirect    off;
    }

Вы должны использовать обратную косую черту после «test23» в перезаписи.В первом случае это работает, потому что в запросе нет ничего после / test23.

Во втором запросе он перепутан, потому что положение блоков местоположения имеет значение.Таким образом, оно переписывается по первому правилу, которое приводит к ошибке без обратной косой черты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...