# 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 块。 | |