File size: 2,878 Bytes
24b49a4 3923cf3 24b49a4 3923cf3 24b49a4 3923cf3 24b49a4 |
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 |
# Nginx 的主配置块
server {
# 监听 8080 端口 (这是容器内部的端口,Hugging Face 会把它映射出去)
listen 8080;
# 服务器名,这里用 _ 表示接受任意域名,因为 Hugging Face 会分配域名
server_name _;
# 处理所有以 /ai/ 开头的请求
location /ai/ {
# 关键步骤:重写 URL
# 这行代码的意思是:
# ^/ai/(.*)$ : 匹配以 /ai/ 开头的路径,并将 /ai/ 后面的所有内容捕获到变量 $1 中
# /$1 : 将请求路径替换为捕获到的内容 $1 (即去掉了 /ai/ 前缀)
# break : 停止处理后续的 rewrite 规则,并使用当前的 URI 进行后续处理
rewrite ^/ai/(.*)$ /$1 break;
# 将重写后的请求转发给你的目标服务器
# 注意:这里使用 https://cc.cwapi.me
proxy_pass https://cc.cwapi.me;
# --- 以下是一些推荐的设置,帮助目标服务器正确识别请求 ---
# 将原始请求的 Host 头部传递给后端服务器
proxy_set_header Host $host;
# 将客户端的真实 IP 地址传递给后端服务器
proxy_set_header X-Real-IP $remote_addr;
# 传递客户端请求经过的代理服务器列表
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 告诉后端服务器原始请求是 http 还是 https
proxy_set_header X-Forwarded-Proto $scheme;
# 增加缓冲区大小,以防 API 响应过大导致问题 (可选,但有时有用)
proxy_buffers 16 16k;
proxy_buffer_size 32k;
}
# 处理根路径 / 的请求 (可选,可以给一个提示,避免直接访问时 Nginx 报错)
location / {
# 返回一个简单的 404 Not Found 或提示信息
return 404 'Not Found: Please access via /ai/ path\n';
# 或者可以返回一个简单的 HTML 页面
# add_header Content-Type text/html;
# return 200 '<html><body><h1>Proxy Ready</h1><p>Access your API via /ai/</p></body></html>';
}
# (可选) 禁用 Nginx 错误日志输出到控制台,如果你不希望看到 Nginx 自身的错误信息
# error_log /dev/null crit;
}
# 你可以保留你的 http, events, user 配置,但对于这个简单的反代,
# 上面的 server 块通常放在 http 块内部。
# 如果只用上面的 server 块,Nginx 会使用默认的 user 和 events 设置。
# 一个更完整的结构可能是:
# events { worker_connections 1024; }
# http {
# # 把上面的 server { ... } 块放在这里
# server {
# ...
# }
# # error_log /dev/null crit; # 可以放在 http 块里
# }
# 但对于这个 Dockerfile 里的 nginx.conf,只需要上面的 server { ... } 块内容通常就够了。
# Nginx 镜像的默认配置会包含必要的 http 和 events 块。
|