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

я есть следующие настройки

Главный сервер - позвониhttps://master.comВедомый сервер - называйте этоhttps://slave.com

Оба запускают Nginx на Ubuntu 16.04

На главном сервере я создал следующий блок конфигурации в моем/etc/nginx/sites-available/default файл

location /test
{
 rewrite ^/test(.*) /$1 break;
 proxy_pass https://slave.com;
 proxy_read_timeout 240;
 proxy_redirect off;
 proxy_buffering off;
 proxy_set_header Host $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto https;
}

A service nginx reload позжеmaster.comи я могу сделать следующее

Перейти кhttps://master.com/test и просмотреть вывод изslave.com\index.php.Перейти кhttps://master.com/test/test.txtи увидеть текст в файлеslave.com\test.txtПерейти кhttps://master/com/test/test.jpg и увидеть изображение в файлеslave.com\test.jpg.

Тем не менее, я не могу сделать что-либо из следующего

Перейти кhttps://master.com/test/test.phpкоторый вместо того, чтобы показать мне выход изhttps://slave.com/test.php показывает мне сообщение об ошибке 404Перейти кhttps://master.com/test/adminer/adminer.phpкоторый вместо того, чтобы показать мне экран входа в систему для экземпляра Adminer на ведомом устройстве,https://slave.com/adminer/adminer.phpпоказывает мне экран входа в систему для экземпляра Adminer наmaster.comто естьhttps://master.com/adminer/adminer.php

Это очевидно, потому что я что-то упустил в моей конфигурации Nginx наmaster.com, Однако я не вижу, что это может быть.

В интересах полноты, вот моя конфигурация на обоих серверах:

Ubuntu - 16.04.3Nginx - 1.10.3PHP - 7.0.22

Я должен объяснить, почему^~ требуется, так как это не ясно из моего первоначального вопроса. У меня есть другой блок настройки для обработки сценариев PHP наmaster.com.

location ~ \.php$ 
{
 try_files $uri =404;
 fastcgi_split_path_info ^(.+\.php)(/.+)$;
 fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
}

Из-за того, как Nginx обрабатывает эти директивы, этот блок имеет приоритет при обработке.php файлы иmaster.com в конечном итоге ищет локально.php сценарии, которые на самом деле наslave.com, Единственный способ избежать этого - использовать^~

Ответы на вопрос(1)

Ваш ответ на вопрос