vault backup: 2026-05-18 21:11:52

This commit is contained in:
Dmitry
2026-05-18 21:11:52 +03:00
parent 969ef896bc
commit 6a5af63bb5
66 changed files with 1646 additions and 210 deletions
@@ -0,0 +1,58 @@
---
status: seed
type: guide
tags:
- admin
- nginx
- reverse-proxy
- homelab
created: 2026-05-18
updated: 2026-05-18
title: Nginx Proxy Manager под path
source: "[[Лайфхак для NPM. Как проксировать не на поддомен а на под путь]]"
---
# Nginx Proxy Manager под path
Кейс: сервис нужно опубликовать не на отдельном поддомене вида `service.domain.ru`, а в подкаталоге основного домена: `domain.ru/<path>`.
## Решение
В Nginx Proxy Manager нужно добавить `location` для нужного маршрута и в дополнительных настройках срезать prefix перед проксированием:
```nginx
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 - Дополнительные знания]] — эксплуатация сервисов в контейнерах.