Files
netrunner-landing/nginx/landing-ssl.conf
T
nineap 7076bbcc78 nginx+TLS перед лендингом на прод VPS вместо голых портов наружу
Порты 3000/3001 закрыты для интернета (ufw allow только с IP VPS данных —
Prometheus). Публичный вход только netrunner-vpn.com через nginx: "/" на
сам лендинг, "/cms-api/" на PocketBase (со сменой префикса на "/api"),
"/api/" на proxy-ws (comments/speedtest, уже с этим префиксом внутри).
2026-07-10 19:07:10 +07:00

55 lines
2.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Часть 2/2 — деплой включает этот файл ТОЛЬКО когда сертификат уже есть.
# ВАЖНО: сертификат выпускается ОДНОЙ командой на оба домена сразу (см.
# .gitea/workflows/deploy-nginx.yml у netrunner-backend, туда же убегает
# первый -d) — папка в /etc/letsencrypt/live называется по ПЕРВОМУ домену,
# account.netrunner-vpn.com, а не netrunner-vpn.com, даже для этого файла.
#
# Реальный IP посетителя — из CF-Connecting-IP, см.
# /etc/nginx/conf.d/cloudflare-real-ip.conf на самом сервере (общий для всех
# доменов на этом VPS, не часть этого репозитория).
#
# Три бэкенда за одним доменом:
# / -> сам лендинг (Next.js, :3000)
# /cms-api/* -> PocketBase (:8090) — префикс "/cms-api" меняется на
# родной для PocketBase "/api" (см. PB_PUBLIC_URL в
# docker-compose.yml)
# /api/* -> proxy-ws (:3001) — его собственные роуты уже объявлены
# с префиксом /api (comments, speedtest), никакой замены
# префикса не нужно, только вебсокет-апгрейд заголовки
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name netrunner-vpn.com;
ssl_certificate /etc/letsencrypt/live/account.netrunner-vpn.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/account.netrunner-vpn.com/privkey.pem;
location /cms-api/ {
proxy_pass http://127.0.0.1:8090/api/;
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;
}
location /api/ {
proxy_pass http://127.0.0.1:3001;
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;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location / {
proxy_pass http://127.0.0.1:3000;
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;
}
}