dstack-ingress: add WebSocket proxy support

Aperta Adatta ai principianti
#87 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
76/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
docker, nginx

Direzione di ricerca

Trova l’entrypoint che contiene setup_nginx_conf() e verifica come genera il blocco nginx location /. Aggiungi lì le impostazioni proxy WebSocket richieste, quindi verifica che le richieste WebSocket ricevano una risposta 101 Upgrade mentre il normale traffico HTTP continua a funzionare.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

The kvin/dstack-ingress:wildcard image generates its nginx config via setup_nginx_conf() in the entrypoint, but the location / block is missing WebSocket upgrade headers. Without these, any WebSocket service behind dstack-ingress gets HTTP 200 instead of 101 Upgrade.

Suggested fix: add these three lines to the location / block in setup_nginx_conf():

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

This is safe for mixed HTTP + WebSocket traffic. $http_upgrade is empty for regular HTTP requests, and upstreams ignore Connection: upgrade when there's no valid Upgrade value. proxy_http_version 1.1 is strictly better than the default 1.0 (also enables keepalive). This is the standard nginx pattern recommended in the nginx WebSocket docs.

Current workaround: override command in docker-compose to patch the generated config before starting nginx:

command:
  - bash
  - -c
  - |
    sed -i '/proxy_pass/a\        proxy_http_version 1.1;\n        proxy_set_header Upgrade $$http_upgrade;\n        proxy_set_header Connection "upgrade";' /etc/nginx/conf.d/default.conf
    exec nginx -g "daemon off;"
Lingua principale
Python
Stelle
27
Fork
26
Merge medio
1g 6h
PR unite (30g)
12

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Dstack-TEE/dstack-examples

Tutte le issue di Dstack-TEE/dstack-examples

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.