kgrabko's picture
Rename cluster/cluster/nginx.conf to cluster/nginx.conf
17cc650 verified
events {
worker_connections 8192;
}
http {
log_format jirack_log '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'rt=$request_time';
access_log /var/log/nginx/access.log jirack_log;
error_log /var/log/nginx/error.log warn;
# Rate limiting
limit_req_zone $binary_remote_addr zone=jirack_limit:20m rate=30r/m;
# Upstream — исправленные имена под 1B docker-compose
upstream jirack_backend {
least_conn; # Least connections — оптимально
server jirack1:7869 max_fails=3 fail_timeout=10s;
server jirack2:7869 max_fails=3 fail_timeout=10s;
server jirack3:7869 max_fails=3 fail_timeout=10s;
server jirack4:7869 max_fails=3 fail_timeout=10s;
server jirack5:7869 max_fails=3 fail_timeout=10s;
}
server {
listen 80;
location / {
limit_req zone=jirack_limit burst=15 nodelay;
proxy_pass http://jirack_backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
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;
proxy_buffering off;
proxy_request_buffering off;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
chunked_transfer_encoding on;
proxy_hide_header X-Powered-By;
}
# Healthcheck
location /health {
access_log off;
return 200 "healthy\n";
}
}
}