# Часть 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; } }