Я хотел бы, чтобы любой входящий HTTP-запрос (независимо от имени домена), начинающийся с определенного пути, был отправлен на локальный сервер. Например:
location /special/path/ {
proxy_pass http://127.0.0.1:8000/;
}
Если нет соответствия server {}
блока для данного доменного имени, Nginx направит запрос на default_server
. Но мне нужна просьба всегда перенаправляться на локальный сервер, даже если совпадение server {}
блок найден.
Как мне это сделать?
Бонус: если есть способ сделать это за пределами server {}
который в настоящее время имеет default_server
набор, это было бы здорово.
Я думаю, вам, возможно, придется настроить подходящий блок на каждом сервере. Вы можете сделать это с помощью включения, а не копирования и вставки. Это должно работать на сервере по умолчанию.
Итак, в каждом блоке сервера используйте что-то вроде этого
include /etc/nginx/fragments/path.conf
И в /etc/nginx/fragments/path.conf
location /special/path/ {
proxy_pass http://127.0.0.1:8000/;
}
Обратите внимание, что вы не должны помещать его в каталог с поддержкой сайтов, поскольку nginx.conf включает их, и это недопустимый синтаксис в этом контексте.
У кого-то может быть лучший способ, но я верю, что это сработает.