2.6 KiB
2.6 KiB
status, type, tags, created, updated, title, source
| status | type | tags | created | updated | title | source | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| seed | guide |
|
2026-05-18 | 2026-05-18 | Nginx Proxy Manager под path | Лайфхак для NPM. Как проксировать не на поддомен а на под путь |
Nginx Proxy Manager под path
Кейс: сервис нужно опубликовать не на отдельном поддомене вида service.domain.ru, а в подкаталоге основного домена: domain.ru/<path>.
Решение
В Nginx Proxy Manager нужно добавить location для нужного маршрута и в дополнительных настройках срезать prefix перед проксированием:
rewrite ^/<path>/?(.*)$ /$1 break;
Смысл правила:
- пользователь открывает
domain.ru/<path>/...; - Nginx убирает
/<path>из URI; - upstream получает путь так, будто сервис открыт в корне
/.
Когда это нужно
Подход полезен, если:
- не хочется заводить отдельный поддомен под мелкий сервис;
- сервис живет за reverse proxy в homelab;
- внешний URL должен быть компактным;
- нужно спрятать несколько внутренних сервисов за одним доменом.
Ограничения
Не каждый сервис нормально работает под path-prefix. Возможные проблемы:
- абсолютные ссылки на
/assets,/api,/static; - WebSocket-маршруты;
- OAuth/callback URL;
- hardcoded base URL внутри приложения;
- редиректы на
/, из-за которых пользователь выпадает из/<path>.
Если приложение поддерживает настройку base path/base URL, лучше указать ее явно. Rewrite в proxy — рабочий хак, но не полноценная замена поддержке subpath внутри приложения.
Связанные заметки
- Infrastructure — ada-dev — где NPM используется как публичный и локальный reverse proxy.
- CA и NGINX — TLS и базовая настройка Nginx.
- Docker - Дополнительные знания — эксплуатация сервисов в контейнерах.