Update nginx.conf
Browse files- nginx.conf +58 -65
nginx.conf
CHANGED
@@ -1,69 +1,62 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
-
#
|
4 |
-
|
5 |
-
|
|
|
|
|
|
|
|
|
|
|
6 |
|
7 |
-
|
8 |
-
|
9 |
}
|
10 |
|
11 |
-
http
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
server_name _;
|
26 |
-
|
27 |
-
# 处理 /ai/ 前缀的请求
|
28 |
-
location /ai/ {
|
29 |
-
# proxy_pass 目标 URL 末尾必须加斜杠 /,这会告诉 Nginx
|
30 |
-
# 将匹配 location 的部分 (/ai/) 替换掉,并将剩余路径附加到目标 URL 后
|
31 |
-
proxy_pass https://cc.cwapi.me/; # 转发到你的域名 (使用 HTTPS)
|
32 |
-
|
33 |
-
# --- 推荐的代理头部设置 ---
|
34 |
-
# 将 Host 头设置为后端服务器期望的域名
|
35 |
-
proxy_set_header Host cc.cwapi.me;
|
36 |
-
# 传递客户端真实 IP 和协议信息
|
37 |
-
proxy_set_header X-Real-IP $remote_addr;
|
38 |
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
39 |
-
proxy_set_header X-Forwarded-Proto $scheme;
|
40 |
-
# 使用 HTTP/1.1 与后端通信,并处理好 Connection 头
|
41 |
-
proxy_http_version 1.1;
|
42 |
-
proxy_set_header Connection "";
|
43 |
-
# --- 结束设置 ---
|
44 |
-
|
45 |
-
# 可选:为 AI 请求设置更长的超时时间 (单位:秒)
|
46 |
-
# proxy_connect_timeout 60s;
|
47 |
-
# proxy_send_timeout 60s;
|
48 |
-
# proxy_read_timeout 300s; # 读取后端响应的超时,可能需要长一些
|
49 |
-
}
|
50 |
-
|
51 |
-
# 处理 /cw/ 前缀的请求 (配置逻辑同上)
|
52 |
-
location /cw/ {
|
53 |
-
proxy_pass https://cc.cwapi.me/; # 同样转发到你的域名
|
54 |
-
proxy_set_header Host cc.cwapi.me;
|
55 |
-
proxy_set_header X-Real-IP $remote_addr;
|
56 |
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
57 |
-
proxy_set_header X-Forwarded-Proto $scheme;
|
58 |
-
proxy_http_version 1.1;
|
59 |
-
proxy_set_header Connection "";
|
60 |
-
}
|
61 |
-
|
62 |
-
# 对于其他所有路径 (比如直接访问根路径 /)
|
63 |
-
location / {
|
64 |
-
# 可以返回一个 404 Not Found,或者一个简单的成功提示
|
65 |
-
return 404 'Not Found: Invalid path. Use /ai/ or /cw/ prefix.';
|
66 |
-
# 或者 return 200 'Nginx Proxy Active';
|
67 |
-
}
|
68 |
-
}
|
69 |
-
}
|
|
|
1 |
+
# Nginx 的主配置块
|
2 |
+
server {
|
3 |
+
# 监听 8080 端口 (这是容器内部的端口,Hugging Face 会把它映射出去)
|
4 |
+
listen 8080;
|
5 |
+
# 服务器名,这里用 _ 表示接受任意域名,因为 Hugging Face 会分配域名
|
6 |
+
server_name _;
|
7 |
+
|
8 |
+
# 处理所有以 /ai/ 开头的请求
|
9 |
+
location /ai/ {
|
10 |
+
# 关键步骤:重写 URL
|
11 |
+
# 这行代码的意思是:
|
12 |
+
# ^/ai/(.*)$ : 匹配以 /ai/ 开头的路径,并将 /ai/ 后面的所有内容捕获到变量 $1 中
|
13 |
+
# /$1 : 将请求路径替换为捕获到的内容 $1 (即去掉了 /ai/ 前缀)
|
14 |
+
# break : 停止处理后续的 rewrite 规则,并使用当前的 URI 进行后续处理
|
15 |
+
rewrite ^/ai/(.*)$ /$1 break;
|
16 |
+
|
17 |
+
# 将重写后的请求转发给你的目标服务器
|
18 |
+
# 注意:这里使用 https://cc.cwapi.me
|
19 |
+
proxy_pass https://cc.cwapi.me;
|
20 |
+
|
21 |
+
# --- 以下是一些推荐的设置,帮助目标服务器正确识别请求 ---
|
22 |
+
# 将原始请求的 Host 头部传递给后端服务器
|
23 |
+
proxy_set_header Host $host;
|
24 |
+
# 将客户端的真实 IP 地址传递给后端服务器
|
25 |
+
proxy_set_header X-Real-IP $remote_addr;
|
26 |
+
# 传递客户端请求经过的代理服务器列表
|
27 |
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
28 |
+
# 告诉后端服务器原始请求是 http 还是 https
|
29 |
+
proxy_set_header X-Forwarded-Proto $scheme;
|
30 |
+
|
31 |
+
# 增加缓冲区大小,以防 API 响应过大导致问题 (可选,但有时有用)
|
32 |
+
proxy_buffers 16 16k;
|
33 |
+
proxy_buffer_size 32k;
|
34 |
+
}
|
35 |
|
36 |
+
# 处理根路径 / 的请求 (可选,可以给一个提示,避免直接访问时 Nginx 报错)
|
37 |
+
location / {
|
38 |
+
# 返回一个简单的 404 Not Found 或提示信息
|
39 |
+
return 404 'Not Found: Please access via /ai/ path\n';
|
40 |
+
# 或者可以返回一个简单的 HTML 页面
|
41 |
+
# add_header Content-Type text/html;
|
42 |
+
# return 200 '<html><body><h1>Proxy Ready</h1><p>Access your API via /ai/</p></body></html>';
|
43 |
+
}
|
44 |
|
45 |
+
# (可选) 禁用 Nginx 错误日志输出到控制台,如果你不希望看到 Nginx 自身的错误信息
|
46 |
+
# error_log /dev/null crit;
|
47 |
}
|
48 |
|
49 |
+
# 你可以保留你的 http, events, user 配置,但对于这个简单的反代,
|
50 |
+
# 上面的 server 块通常放在 http 块内部。
|
51 |
+
# 如果只用上面的 server 块,Nginx 会使用默认的 user 和 events 设置。
|
52 |
+
# 一个更完整的结构可能是:
|
53 |
+
# events { worker_connections 1024; }
|
54 |
+
# http {
|
55 |
+
# # 把上面的 server { ... } 块放在这里
|
56 |
+
# server {
|
57 |
+
# ...
|
58 |
+
# }
|
59 |
+
# # error_log /dev/null crit; # 可以放在 http 块里
|
60 |
+
# }
|
61 |
+
# 但对于这个 Dockerfile 里的 nginx.conf,只需要上面的 server { ... } 块内容通常就够了。
|
62 |
+
# Nginx 镜像的默认配置会包含必要的 http 和 events 块。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|