| 1 | params: |
| 2 | reqs_per_second: 12 |
| 3 | burst_per_second: 12 |
| 4 | reqs_per_minute: 200 |
| 5 | burst_per_minute: 100 |
| 6 | |
| 7 | run: |
| 8 | - replace: |
| 9 | filename: "/etc/nginx/conf.d/discourse.conf" |
| 10 | from: /server.+{/ |
| 11 | to: | |
| 12 | limit_req_zone $binary_remote_addr zone=flood:10m rate=$reqs_per_secondr/s; |
| 13 | limit_req_zone $binary_remote_addr zone=bot:10m rate=$reqs_per_minuter/m; |
| 14 | limit_req_status 429; |
| 15 | server { |
| 16 | - replace: |
| 17 | filename: "/etc/nginx/conf.d/discourse.conf" |
| 18 | from: "/location @discourse {/" |
| 19 | to: | |
| 20 | location @discourse { |
| 21 | limit_req zone=flood burst=$burst_per_second nodelay; |
| 22 | limit_req zone=bot burst=$burst_per_minute nodelay; |