internal

Директива `internal` помечает блок location как доступный только изнутри самого NGINX, предотвращая прямой доступ внешних клиентов. — NGINX HTTP Core

internal
location
Синтаксисinternal;
По умолчаниюnone
Контекстlocation
МодульNGINX HTTP Core
Аргументыnone

Описание

Директива `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 для обратной связи с пользователем.