Назад | Перейти на главную страницу

Как добавить блок местоположения, который применяется ко всем входящим запросам?

Я хотел бы, чтобы любой входящий 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 включает их, и это недопустимый синтаксис в этом контексте.

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