events { worker_connections 1024; } http { server { listen 9000; server_name _; # 定义你的 API Key # 客户端请求时需携带 Header: Authorization: Bearer YOUR_SECRET_KEY # 或者 Query Param: ?api_key=YOUR_SECRET_KEY client_max_body_size 300M; # 根据你的实际最大文件调整,比如 200M location /mineru/ { # --- 方式 A: 基于 Header 鉴权 (推荐) --- if ($http_authorization != "Bearer sk_dev_aC_2gg8BS5ImUScrpaHIKS5x6gdLO9Js_ba854894") { return 401 '{"error": "Unauthorized"}'; } # --- 方式 B: 基于 Query Param 鉴权 (如果不方便改 Header) --- # if ($arg_api_key != "YOUR_SECRET_KEY") { # return 401 '{"error": "Unauthorized"}'; # } ## 关键:proxy_pass 末尾的斜杠会替换掉 location 中匹配的 /mineru/ proxy_pass http://mineru-api:8000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 针对大文件上传解析的优化 #client_max_body_size 50M; proxy_read_timeout 300s; proxy_send_timeout 300s; } } }