feat(nginx-webai): /api/webai/ location with rate limit + X-WebAI-Key forward

limit_req_zone webai:5m rate=60r/m, burst=20 nodelay, return 429 on
limit hit. Proxies to stock:8000 with X-Real-IP, X-Forwarded-For,
and X-WebAI-Key headers preserved.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-15 08:48:14 +09:00
parent 1e377e1559
commit 13da2226c3

View File

@@ -1,3 +1,6 @@
# /api/webai/* rate limit — web-ai pull worker (60 req/min, burst 20)
limit_req_zone $binary_remote_addr zone=webai:5m rate=60r/m;
server { server {
listen 80; listen 80;
server_name _; server_name _;
@@ -132,6 +135,20 @@ server {
proxy_pass http://travel-proxy:8000/api/travel/; proxy_pass http://travel-proxy:8000/api/travel/;
} }
# webai API — rate limited web-ai pull worker
location /api/webai/ {
limit_req zone=webai burst=20 nodelay;
limit_req_status 429;
proxy_http_version 1.1;
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;
proxy_set_header X-WebAI-Key $http_x_webai_key;
proxy_pass http://stock:8000;
}
# stock API # stock API
location /api/stock/ { location /api/stock/ {
proxy_http_version 1.1; proxy_http_version 1.1;