cat > /data/nba-go-config/nginx/nginx.conf << 'EOF' user nginx; events { worker_connections 1024; } http { proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=api_cache:10m max_size=100m inactive=5m; map $http_referer $blocked_referer { default 0; "~*nbasalarymodel\.xyz" 1; "~*kacpertheater\.github\.io" 1; } upstream go_backend { server api1:5000; server api2:5000; server api3:5000; } server { listen 8080; access_log /dev/stdout; error_log /dev/stderr; if ($blocked_referer) { return 403; } location /api/ { proxy_cache api_cache; proxy_cache_valid 200 30s; proxy_cache_key "$request_uri"; proxy_cache_use_stale error timeout updating; add_header X-Cache-Status $upstream_cache_status; proxy_pass http://go_backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; 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; } location / { proxy_pass http://go_backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; 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; } } } EOF docker exec 4c3368863bdc nginx -s reload