internal
Директива `internal` помечает блок location как доступный только изнутри самого NGINX, предотвращая прямой доступ внешних клиентов. — NGINX HTTP Core
Описание
Директива `internal` в NGINX используется внутри блоков location, чтобы задать, что указанный location может быть доступен только изнутри самого NGINX и не доступен внешним клиентам. Это особенно полезно для защиты определённых ресурсов или маршрутов, которые не должны быть напрямую доступны пользователям, например серверных скриптов или внутренних API, обрабатывающих конфиденциальные данные. Когда запрос к `internal` location поступает извне, NGINX ответит ошибкой 404 Not Found, эффективно блокируя неавторизованный доступ. Когда директива `internal` применяется к блоку location, любая попытка обратиться к этому блоку напрямую со стороны клиента приведёт к ответу с ошибкой, что сохраняет целостность и безопасность приложения. Такое поведение помогает эффективно структурировать приложение, позволяя использовать определённые пути исключительно для внутренних перенаправлений, ссылок или location, 'скрытых' от конечных пользователей, и может сочетаться с другими директивами, такими как `rewrite` или `error_page`, чтобы управлять тем, что происходит при попытке неавторизованного доступа. Директива не принимает аргументов, что отражает её функциональность включения/выключения (включена при объявлении). Поэтому она органично вписывается в типичную парадигму конфигурации NGINX, где блоки могут быть чётко разграничены по назначению и функционалу. Правильное использование этой директивы может значительно повысить уровень безопасности приложений, размещённых в NGINX, гарантируя, что только предусмотренная сервер‑к серверная коммуникация происходит через контролируемые конечные точки.
Пример конфига
location /private {
internal;
# additional configurations
}Размещение директивы internal внутри вложенных locations может привести к непредвиденному поведению; убедитесь, что она используется в правильном логическом контексте.
Помните, что все internal requests должны маршрутизироваться через настроенные error pages или redirects для обратной связи с пользователем.