mirror of
https://github.com/Direct-Dev-Ru/go-lcg.git
synced 2025-11-16 01:29:55 +00:00
6.8 KiB
6.8 KiB
🔄 Гайд по настройке LCG за Reverse Proxy
📋 Переменные окружения для Reverse Proxy
🔧 Основные настройки:
# Включить аутентификацию
LCG_SERVER_REQUIRE_AUTH=true
# Настроить домен для cookies (опционально)
LCG_DOMAIN=.yourdomain.com
# Настроить путь для cookies (для префикса пути)
LCG_COOKIE_PATH=/lcg
# Управление Secure флагом cookies
LCG_COOKIE_SECURE=false
# Разрешить HTTP (для работы за reverse proxy)
LCG_SERVER_ALLOW_HTTP=true
# Настроить хост и порт
LCG_SERVER_HOST=0.0.0.0
LCG_SERVER_PORT=8080
# Пароль для входа (по умолчанию: admin#123456)
LCG_SERVER_PASSWORD=your_secure_password
🚀 Запуск за Reverse Proxy
1. Nginx конфигурация:
server {
listen 443 ssl;
server_name yourdomain.com;
# SSL настройки
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Важно для работы cookies
proxy_cookie_domain localhost yourdomain.com;
}
}
2. Apache конфигурация:
<VirtualHost *:443>
ServerName yourdomain.com
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/key.pem
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
# Настройки для cookies
ProxyPassReverseCookieDomain localhost yourdomain.com
</VirtualHost>
3. Caddy конфигурация:
yourdomain.com {
reverse_proxy localhost:8080 {
header_up Host {host}
header_up X-Real-IP {remote}
header_up X-Forwarded-For {remote}
header_up X-Forwarded-Proto {scheme}
}
}
🏃♂️ Команды запуска
Базовый запуск:
LCG_SERVER_REQUIRE_AUTH=true LCG_SERVER_ALLOW_HTTP=true ./lcg serve -H 0.0.0.0 -p 8080
С настройкой домена:
LCG_SERVER_REQUIRE_AUTH=true \
LCG_SERVER_ALLOW_HTTP=true \
LCG_DOMAIN=.yourdomain.com \
LCG_COOKIE_SECURE=false \
./lcg serve -H 0.0.0.0 -p 8080
С кастомным паролем:
LCG_SERVER_REQUIRE_AUTH=true \
LCG_SERVER_ALLOW_HTTP=true \
LCG_SERVER_PASSWORD=my_secure_password \
LCG_DOMAIN=.yourdomain.com \
./lcg serve -H 0.0.0.0 -p 8080
🔒 Безопасность
Рекомендуемые настройки:
- ✅
LCG_SERVER_REQUIRE_AUTH=true- всегда включайте аутентификацию - ✅
LCG_COOKIE_SECURE=false- для HTTP за reverse proxy - ✅
LCG_DOMAIN=.yourdomain.com- для правильной работы cookies - ✅ Сильный пароль в
LCG_SERVER_PASSWORD
Настройки Reverse Proxy:
- ✅ Передавайте заголовки
X-Forwarded-* - ✅ Настройте
proxy_cookie_domainв Nginx - ✅ Используйте HTTPS на уровне reverse proxy
🐳 Docker Compose пример
version: '3.8'
services:
lcg:
image: your-lcg-image
environment:
- LCG_SERVER_REQUIRE_AUTH=true
- LCG_SERVER_ALLOW_HTTP=true
- LCG_DOMAIN=.yourdomain.com
- LCG_COOKIE_SECURE=false
- LCG_SERVER_PASSWORD=secure_password
ports:
- "8080:8080"
restart: unless-stopped
nginx:
image: nginx:alpine
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./ssl:/etc/nginx/ssl
ports:
- "443:443"
depends_on:
- lcg
🔍 Диагностика проблем
Проверка cookies:
# Проверить установку cookies
curl -I https://yourdomain.com/login
# Проверить домен cookies
curl -v https://yourdomain.com/login 2>&1 | grep -i cookie
Логи приложения:
# Запуск с debug режимом
LCG_SERVER_REQUIRE_AUTH=true \
LCG_SERVER_ALLOW_HTTP=true \
./lcg -d serve -H 0.0.0.0 -p 8080
📝 Примечания
- SameSite=Lax - более мягкий режим для reverse proxy
- Domain cookies - работают только с указанным доменом
- Secure=false - обязательно для HTTP за reverse proxy
- X-Forwarded- заголовки* - важны для правильной работы
🆘 Частые проблемы
- Cookies не работают → Проверьте
LCG_DOMAINи настройки reverse proxy - Ошибка 403 CSRF → Проверьте передачу cookies через reverse proxy
- Не работает аутентификация → Убедитесь что
LCG_SERVER_REQUIRE_AUTH=true - Проблемы с HTTPS → Настройте
LCG_COOKIE_SECURE=falseдля HTTP за reverse proxy
🛣️ Конфигурация с префиксом пути
Пример: example.com/lcg
Переменные окружения для префикса:
LCG_SERVER_REQUIRE_AUTH=true \
LCG_SERVER_ALLOW_HTTP=true \
LCG_DOMAIN=.example.com \
LCG_COOKIE_PATH=/lcg \
LCG_COOKIE_SECURE=false \
./lcg serve -H 0.0.0.0 -p 8080
Nginx с префиксом:
server {
listen 443 ssl;
server_name example.com;
location /lcg/ {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Важно для работы cookies с префиксом
proxy_cookie_domain localhost example.com;
proxy_cookie_path / /lcg/;
}
}
Apache с префиксом:
<VirtualHost *:443>
ServerName example.com
SSLEngine on
ProxyPreserveHost On
ProxyPass /lcg/ http://localhost:8080/
ProxyPassReverse /lcg/ http://localhost:8080/
# Настройки для cookies с префиксом
ProxyPassReverseCookieDomain localhost example.com
ProxyPassReverseCookiePath / /lcg/
</VirtualHost>
Caddy с префиксом:
example.com {
reverse_proxy /lcg/* localhost:8080 {
header_up Host {host}
header_up X-Real-IP {remote}
header_up X-Forwarded-For {remote}
header_up X-Forwarded-Proto {scheme}
}
}