یک سرویس http api روی یک docker container با نام `api` و روی پورت `8080` ران میشود.
#### از شما میخواهیم:
۱. با استفاده از `nginx` درخواستها به پورت `80` را به این سرویس **proxy** کنید.
۲. با استفاده از `nginx` یک `rate limit` اضافه کنید.
این rate limit باید بر اساس `header` با نام `CLIENT-KEY` کار کند
و هر client مجاز باشد در هر دقیقه ۱۰ request ارسال کند
و پس از آن به مدت ۱ دقیقه response با status code برابر `429` دریافت کند.
همچنین در تنظیم rate limit توجه داشته باشید که
یک `client-key` باید بتواند همه **۱۰ درخواست مجاز خود در دقیقه** را،
**در یک ثانیه** بزند و محدودیتی از این لحاظ نداشته باشد.
---
محتوای فایل `docker-compose.yml` که در داوری اجرا میشود:
```yaml docker-compose.yml
version: "3"
services:
api:
build: "./api"
container_name: "api"
volumes:
- ./api:/api
ports:
- "8080:8080"
nginx:
image: registry.gitlab.com/qio/standard/nginx:1.21-alpine
container_name: nginx
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
```
---
**شما تنها مجاز به ارسال فایل `nginx.conf` هستید
و هر فایل دیگری که ارسال کنید در داوری اثر نخواهد داشت.**