http:
middlewares:
# Rate-limit middleware
rate-limit:
rateLimit:
average: XX # Requests per second on average
burst: XX # Maximum requests allowed to burst
period: Xs # Time period for the average calculation
sourceCriterion:
ipStrategy:
depth: 0 # Use the client IP directly
# Large upload middleware
large-upload:
buffering:
maxRequestBodyBytes: XXXXXXXXXX # Size in bytes
memRequestBodyBytes: XXXXXXXXX # Threshold before using disk
routers:
[service-name]-router-XXXX:
rule: Host(`example.com`)
service: [service-name]-service-XXXX
middlewares:
- redirect-to-https
entryPoints:
- web
[service-name]-router-websecure-XXXX:
rule: Host(`example.com`)
service: [service-name]-service-XXXX
middlewares:
- rate-limit
- large-upload
entryPoints:
- websecure
tls:
certResolver: letsencrypt
services:
[service-name]-service-XXXX:
loadBalancer:
servers:
- url: http://[internal-service-name]:XXXX
passHostHeader: true
sticky:
cookie:
name: example_sticky
secure: true
httpOnly: true
sameSite: "lax"