sq66 commited on
Commit
24b49a4
·
verified ·
1 Parent(s): e9cade1

Update nginx.conf

Browse files
Files changed (1) hide show
  1. nginx.conf +58 -65
nginx.conf CHANGED
@@ -1,69 +1,62 @@
1
- worker_processes 1;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
- # Nginx 错误日志输出到标准错误流,方便在 HF Space Logs 查看
4
- # 如果日志量太大或不需要,可以改为 error_log /dev/null crit;
5
- error_log stderr warn;
 
 
 
 
 
6
 
7
- events {
8
- worker_connections 1024;
9
  }
10
 
11
- http {
12
- # 禁用访问日志,如果需要调试可以改为 access_log /dev/stdout;
13
- access_log off;
14
-
15
- # === 指定所有临时文件路径到 /dev/shm ===
16
- client_body_temp_path /dev/shm; # 客户端请求体的临时存放路径
17
- proxy_temp_path /dev/shm; # 代理转发时临时文件的存放路径
18
- fastcgi_temp_path /dev/shm; # FastCGI 临时文件的存放路径
19
- # === 结束指定路径 ===
20
-
21
- server {
22
- # 监听 HF Space 默认暴露的 7860 端口
23
- listen 7860;
24
- # 接受所有指向这个 Space 的域名请求
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 块。