یک سرویس 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 که در داوری اجرا میشود:
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 هستید
و هر فایل دیگری که ارسال کنید در داوری اثر نخواهد داشت.
ارسال پاسخ برای این سؤال