worker_processes auto; worker_rlimit_nofile 65535; events { use epoll; worker_connections 65535; multi_accept on; } http { # 基础设置 sendfile on; tcp_nodelay on; # 开启 TCP_NODELAY tcp_nopush on; # 开启 TCP_NOPUSH proxy_buffering off; # 关闭代理缓冲 chunked_transfer_encoding on; # 启用分块传输编码 # MIME类型 include /etc/nginx/mime.types; # 客户端设置 client_max_body_size 100M; client_body_buffer_size 128k; client_body_timeout 30s; client_header_timeout 30s; # 连接优化 keepalive_timeout 120; # 设置保持连接的超时时间 keepalive_requests 100; # 客户端保持连接请求的数量 # 压缩设置 gzip on; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_types text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml; # 缓存设置 proxy_request_buffering off; # 日志配置 access_log /tmp/nginx_access.log; error_log /tmp/nginx_error.log warn; # 上游服务器配置 upstream backend { least_conn; server 127.0.0.1:3000 max_fails=3 fail_timeout=30s; keepalive 64; } server { listen 3001 http2; # 监听端口并启用 HTTP/2 server_name localhost; # OpenAI API 路由 location /ai/v1/ { rewrite ^/ai/v1/(.*)$ /v1/$1 break; proxy_pass http://backend; # 请求头设置 proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # 清除敏感头部 proxy_set_header X-Forwarded-For ""; proxy_set_header X-Real-IP ""; proxy_set_header X-Direct-Url ""; proxy_set_header X-Forwarded-Port ""; proxy_set_header X-Ip-Token ""; proxy_set_header X-Request-Id ""; proxy_set_header X-Amzn-Trace-Id ""; proxy_set_header X-Forwarded-Proto ""; # 超时设置 proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; error_page 503 =429 /429.html; } location / { proxy_pass http://backend; # 请求头设置 proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # 清除敏感头部 proxy_set_header X-Forwarded-For ""; proxy_set_header X-Real-IP ""; proxy_set_header X-Direct-Url ""; proxy_set_header X-Forwarded-Port ""; proxy_set_header X-Ip-Token ""; proxy_set_header X-Request-Id ""; proxy_set_header X-Amzn-Trace-Id ""; proxy_set_header X-Forwarded-Proto ""; # 超时设置 proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; error_page 503 =429 /429.html; } # 429错误页面 location = /429.html { return 429 'Too Many Requests'; } } }