109 lines
2.8 KiB
Plaintext
109 lines
2.8 KiB
Plaintext
upstream openwebui {
|
|
# server 10.43.14.141:80;
|
|
server 51.210.13.240:3000;
|
|
keepalive 128;
|
|
keepalive_timeout 1800s;
|
|
keepalive_requests 10000;
|
|
|
|
}
|
|
|
|
server {
|
|
if ($host = llm.crenam.space) {
|
|
return 301 https://$host$request_uri;
|
|
} # managed by Certbot
|
|
|
|
|
|
listen 80;
|
|
listen [::]:80;
|
|
server_name llm.crenam.space; # ou un autre sous-domaine
|
|
return 301 https://$host$request_uri;
|
|
|
|
|
|
}
|
|
|
|
server {
|
|
listen 443 ssl http2;
|
|
server_name llm.crenam.space;
|
|
|
|
ssl_protocols TLSv1.2 TLSv1.3;
|
|
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-RSA-AES128-GCM-SHA256';
|
|
ssl_prefer_server_ciphers off;
|
|
|
|
gzip on;
|
|
gzip_types text/plain text/css application/javascript image/svg+xml;
|
|
|
|
location /api/ {
|
|
proxy_pass http://openwebui;
|
|
proxy_http_version 1.1;
|
|
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
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;
|
|
|
|
|
|
|
|
# CRITICAL: Disable all buffering for streaming
|
|
gzip off;
|
|
proxy_buffering off;
|
|
proxy_request_buffering off;
|
|
proxy_cache off;
|
|
tcp_nodelay on;
|
|
add_header X-Accel-Buffering "no" always;
|
|
add_header Cache-Control "no-store" always;
|
|
|
|
|
|
# Extended timeouts for LLM completions
|
|
proxy_connect_timeout 1800;
|
|
proxy_send_timeout 1800;
|
|
proxy_read_timeout 1800;
|
|
}
|
|
|
|
|
|
|
|
# WebSocket connections need even longer timeouts
|
|
|
|
location ~ ^/(ws/|socket\.io/) {
|
|
proxy_pass http://openwebui;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
gzip off;
|
|
proxy_buffering off;
|
|
proxy_cache off;
|
|
|
|
# 24-hour timeout for persistent connections
|
|
proxy_connect_timeout 86400;
|
|
proxy_send_timeout 86400;
|
|
proxy_read_timeout 86400;
|
|
}
|
|
|
|
|
|
# Static assets - CAN buffer and cache
|
|
location /static/ {
|
|
proxy_pass http://openwebui;
|
|
proxy_buffering on;
|
|
proxy_cache_valid 200 7d;
|
|
add_header Cache-Control "public, max-age=604800, immutable";
|
|
}
|
|
|
|
|
|
|
|
# Default location
|
|
|
|
location / {
|
|
proxy_pass http://openwebui;
|
|
proxy_http_version 1.1;
|
|
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;
|
|
|
|
}
|
|
|
|
ssl_certificate /etc/letsencrypt/live/llm.crenam.space/fullchain.pem; # managed by Certbot
|
|
ssl_certificate_key /etc/letsencrypt/live/llm.crenam.space/privkey.pem; # managed by Certbot
|
|
}
|