Розгортання та HTTPS
Розгортання та HTTPS
PgArachne створений, щоб добре виконувати одну роботу: API-шлюз. Для SSL/TLS (HTTPS), безпеки заголовків та публічної маршрутизації вам слід розмістити перед ним зворотний проксі.
Варіант A: Caddy Server
Найкраще для: Сучасних продакшн-розгортань, простоти використання.
Caddy — єдиний веб-сервер, який отримує та автоматично оновлює SSL-сертифікати (Let’s Encrypt) за умовчанням. Він потребує майже нульового налаштування.
# Caddyfile
example.com {
reverse_proxy localhost:8080
}Варіант B: Nginx
Найкраще для: Корпоративних середовищ, складної маршрутизації.
Nginx — галузевий стандарт для високопродуктивного балансування навантаження. Використовуйте це, якщо у вас уже є інфраструктура Nginx. Вам доведеться керувати Certbot вручну.
server {
server_name example.com;
location / {
proxy_pass http://localhost:8080;
}
}Варіант C: Ngrok
Найкраще для: Локальної розробки, демонстрацій, тестування вебхуків.
Ngrok створює безпечний тунель з публічного інтернету безпосередньо до вашого ноутбука без налаштування фаєрволів. Ідеально підходить для миттєвої демонстрації роботи колегам.
./ngrok http 8080Контрольний список для продакшну
- Завершуйте TLS на зворотному проксі та передавайте
X-Forwarded-ProtoіX-Forwarded-For. - Встановіть у PgArachne
TRUSTED_PROXIESна діапазони IP/CIDR вашого проксі. - Вимкніть буферизацію для маршрутів SSE та зробіть тайм-аути читання достатньо довгими для потокової передачі.
- Надавайте доступ до метрик лише внутрішньо (за умовчанням
127.0.0.1:9090) і опитуйте (scrape) з вашої мережі моніторингу.
Приклад посилення захисту Nginx (SSE + forwarded-заголовки)
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /sse/ {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
proxy_read_timeout 1h;
}