events { } http { limit_req_zone $binary_remote_addr zone=kekkai:10m rate=10r/s; # Change the number '10' to your own, to change the threshold number for rate limit upstream server_backend { server server:3000; } upstream chart_backend { server chart:3030; } server { listen 80; server_name localhost; # Your domain limit_req zone=kekkai; location / { limit_req zone=kekkai burst=4; proxy_pass http://server_backend; 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; } location /api/configuration { limit_req zone=kekkai burst=4; proxy_pass http://server_backend; 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; } location /api/getChart { limit_req zone=kekkai burst=4; proxy_pass http://chart_backend; 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; } location /static/chart { limit_req zone=kekkai burst=4; proxy_pass http://chart_backend; 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; } } server { listen 443 ssl; server_name localhost; # Your domain ssl_certificate /etc/nginx/ssl/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/privkey.pem; limit_req zone=kekkai; location / { limit_req zone=kekkai burst=4; proxy_pass http://server_backend; 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; } location /api/configuration { limit_req zone=kekkai burst=4; proxy_pass http://server_backend; 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; } location /api/getChart { limit_req zone=kekkai burst=4; proxy_pass http://chart_backend; 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; } location /static/chart { limit_req zone=kekkai burst=4; proxy_pass http://chart_backend; 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; } } }