Files
2026-06-06 13:23:33 +01:00

60 lines
1.5 KiB
Nginx Configuration File

events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 512M;
limit_req_zone $binary_remote_addr zone=api:10m rate=60r/m;
limit_req_zone $binary_remote_addr zone=upload:10m rate=10r/m;
upstream backend {
server backend:8000;
keepalive 32;
}
upstream frontend {
server frontend:80;
}
server {
listen 80;
server_name _;
location /api/upload/ {
limit_req zone=upload burst=5 nodelay;
proxy_pass http://backend/api/upload/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
client_max_body_size 512M;
}
location /api/ {
limit_req zone=api burst=20 nodelay;
proxy_pass http://backend/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_read_timeout 300s;
}
location /health {
proxy_pass http://backend/health;
proxy_set_header Host $host;
}
location / {
proxy_pass http://frontend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}