File size: 3,411 Bytes
570a4e4 693ae43 570a4e4 10d3abf 693ae43 70b1fa9 570a4e4 4c875ea 10d3abf 70b1fa9 10d3abf 4c875ea 10d3abf 4c875ea 10d3abf 70b1fa9 693ae43 6aae631 0996a35 10d3abf 693ae43 10d3abf 693ae43 10d3abf 693ae43 10d3abf 693ae43 10d3abf 693ae43 10d3abf 570a4e4 10d3abf 693ae43 570a4e4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
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';
}
}
}
|