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