ADR-011: статика игры вынесена из куба на nginx (LXC 152 game-web), версии каталогами
- корень smart-updown.binom.pw -> nginx на Proxmox (LXC 152, 192.168.76.152) - /api,/ws -> куб (router PathPrefix на внешнем Traefik VDS), куб не менялся - версионирование: /opt/game/releases/<N>/, активная = симлинк /opt/game/current - tools/proxmox-nginx: unpack-release.sh, publish-release.sh, game.nginx.conf, smart-updown.traefik.yaml, README - приёмка живьём: корень 200 nginx/1.24.0 (Ubuntu), /27/ /28/ 200, /api/state 200 JSON, /api/ws цена, autoclose-check 9/9 - питфоллы: OCI-manifest в skopeo dir-дампе, слэш в конце версии, /solana-rpc мимо PathPrefix /api
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
http:
|
||||
# ── middlewares ─────────────────────────────────────────────────────────
|
||||
middlewares:
|
||||
# Подмена Host на входе в куб — k3s-Traefik роутит именно по Host,
|
||||
# а ingress `smart-updown-api` объявлен на smart-updown.binom.pw.
|
||||
smart-updown-host:
|
||||
headers:
|
||||
customRequestHeaders:
|
||||
Host: "smart-updown.binom.pw"
|
||||
smart-updown-redirect-https:
|
||||
redirectScheme:
|
||||
scheme: https
|
||||
permanent: true
|
||||
|
||||
# ── routers ─────────────────────────────────────────────────────────────
|
||||
routers:
|
||||
# API и WebSocket игры: уходят в k3s (192.168.76.120) на ingress
|
||||
# `smart-updown-api` (ns game), дальше в TS-шлюз :8895.
|
||||
# Отдельный router потому, что PathPrefix специфичнее Host:
|
||||
# так /api и /ws не перехватываются статикой nginx.
|
||||
smart-updown-api-router:
|
||||
rule: "Host(`smart-updown.binom.pw`) && (PathPrefix(`/api`) || PathPrefix(`/ws`))"
|
||||
service: smart-updown-api
|
||||
entryPoints:
|
||||
- websecure
|
||||
tls:
|
||||
certResolver: mycloudflare
|
||||
|
||||
# Корень: статика игры. Раздаёт nginx на LXC 152 (game-web, 192.168.76.152)
|
||||
# в домашней сети через wg-туннель. Версии — каталогами (/28/, /29/, ...),
|
||||
# корень — активная сборка (симлинк /opt/game/current).
|
||||
smart-updown-router:
|
||||
rule: Host(`smart-updown.binom.pw`)
|
||||
service: smart-updown
|
||||
entryPoints:
|
||||
- websecure
|
||||
tls:
|
||||
certResolver: mycloudflare
|
||||
|
||||
# http -> https
|
||||
smart-updown-http-redirect:
|
||||
rule: Host(`smart-updown.binom.pw`)
|
||||
entryPoints:
|
||||
- web
|
||||
service: noop
|
||||
middlewares:
|
||||
- smart-updown-redirect-https
|
||||
|
||||
# ── services ────────────────────────────────────────────────────────────
|
||||
services:
|
||||
smart-updown-api:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://192.168.76.120"
|
||||
smart-updown:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://192.168.76.152"
|
||||
noop:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://127.0.0.1:9"
|
||||
Reference in New Issue
Block a user