Рейтинг:0

NGINX - разрешить доступ к определенному URL только через поддомен

флаг us

У меня есть веб-страница, расположенная на пример.com/приложение.

Есть ли способ запретить прямой доступ к пример.com/приложение и разрешить только через app.example.com с помощью NGINX?

флаг us
Пожалуйста, поделитесь выводом `nginx -T`, чтобы мы могли увидеть вашу полную конфигурацию nginx и дать правильный ответ.
Рейтинг:1
флаг cn

В вашей пример.com сервер блокировать, местоположение ~ приложение {запретить все; } (или похожие):

сервер {
    имя_сервера пример.com;
    местоположение ~ API {запретить все; }

<конфигурация для примера.com>
}

сервер {
    имя_сервера api.example.com;

<конфигурация для api.example.com>
}
Tarlan Mammadzada avatar
флаг us
Но смогу ли я получить доступ к example.com/api через api.example.com?
Paul avatar
флаг cn
Пока `api.example.com` находится в другом блоке `server`, да.
Tarlan Mammadzada avatar
флаг us
Не могли бы вы добавить в свой ответ блок сервера для `api.example.com`, который обращается к `example.com/api`?
Paul avatar
флаг cn
Поддомен и домен просто находятся в разных «серверных» блоках. Они не получают доступ так же, как браузер. Доступ к каталогам и файлам на сервере. Путем настройки отдельных блоков «сервер» для домена и поддомена доступ к файлам упрощается.
Tarlan Mammadzada avatar
флаг us
В вашем примере я должен перенаправить `api.example.com` на `example.com/api`, потому что у меня нет папки с именем `app`, которую можно установить в корне `server`.
Paul avatar
флаг cn
«Местоположение» — это то, что клиент запрашивает у «nginx». С директивой «запретить все» nginx не будет искать совпадающее «местоположение». А вот что на самом деле находится в файловой структуре сервера — это отдельная история, потому что в данном случае оценивается не это. Даже если нет файла или каталога с именем `api`, `nginx` все равно ответит клиенту 403.
флаг sv
@TarlanMammadzada Пожалуйста, обновите свой вопрос, опубликовав существующую конфигурацию и вывод `curl` о том, что происходит и что вы ищете. Этот ответ дает точный ответ, который вы просили в своем OP. Если у вас есть другие или дополнительные вопросы, опубликуйте их в своем OP или создайте новый вопрос, чтобы все знали, чего вы пытаетесь достичь.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.