https для ссылок в ответах, а также отдельно настраивает длительные WebSocket, SSE и media-соединения.
Минимальная конфигурация Nginx
xscheme в каждом location вместе с остальными proxy_set_header. Зачем он нужен, описано в разделе «HTTPS-ссылки в ответах» ниже.
Минимальная конфигурация Caddy
Caddy по умолчанию передаёт исходныйHost и добавляет X-Forwarded-For и X-Forwarded-Proto. Заголовок xscheme добавьте явно:
Caddyfile
HTTPS-ссылки в ответах
Lampac вписывает свой адрес в ответы: скрипты плагинов (/lampainit.js, /online.js), списки /sisi и /lite/..., ссылки /proxy/. Адрес собирается заново на каждый запрос:
Схема запроса становится
https, если доверенный proxy прислал X-Forwarded-Proto: https. Доверенными считаются loopback-адреса и сети из KnownProxies. При "frontend": "cloudflare" в разделе listen Lampac также принимает X-Forwarded-Proto с адресов Cloudflare. X-Forwarded-Host Lampac не читает, поэтому передавайте исходный Host.
Выберите один из вариантов:
- Передавайте заголовок
xscheme. Он перекрываетlisten.scheme. Примеры для Nginx и Caddy выше уже это делают. - Уберите
schemeиз разделаlisten. Тогда Lampac берёт схему из запроса: через proxy — изX-Forwarded-Proto, при прямом обращении к порту9118—http.
"scheme": "https", если к Lampac обращаются и напрямую, например телевизор в локальной сети. listen.scheme меняет только ссылки. Порт 9118 по-прежнему принимает только HTTP, и ссылки вида https://…:9118 не откроются.
Скрипты плагинов (
/lampainit.js, /online.js, /on.js, /sisi.js) Lampac кэширует до 20 минут. После того как вы добавили xscheme, старые http://-ссылки в них могут приходить до конца этого срока.Доверенный proxy
Ограничьте listener локальным интерфейсом и добавьте адрес proxy вKnownProxies:
Не доверяйте
X-Forwarded-For от произвольного интернета. Lampac использует реальный IP для WAF, account limits и журналов.Streaming
Для/proxy/, /gst/, /ts/ и /music/stream избегайте маленьких proxy timeouts. Если proxy начинает буферизовать весь ответ или писать его во временный файл, растут задержка и расход диска.
Проверка
0: в скрипте нет ссылок на ваш домен по http://.
WebSocket проверьте клиентом, который умеет отправлять Upgrade, например websocat.