server { listen 443 ssl http2 default_server; server_name _; proxy_set_header Host $host; proxy_set_header Connection $http_connection; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; location ~* ^/api/(.*?|v1|openai)/(v1|(generate|stream)|(chat/completions|completions))$ { # Route to inference endpoints proxy_pass http://127.0.0.1:5000; # Required for streaming (both websockets and SSE). proxy_buffering off; proxy_cache off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Set long timeouts for inference operations. # Cloudflare has a timeout of 100 seconds. proxy_read_timeout 120; proxy_connect_timeout 120; proxy_send_timeout 120; } location / { proxy_pass http://127.0.0.1:5000; } ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key; include /etc/nginx/snippets/ssl-params.conf; }