场景
当你有一个兼容OpenAI 的API接口协议的大模型服务的时候,你可以使用一个反向搭理来连接它,用于避免一些特定的鉴权参数。
比如,你们公司单独部署的接口,需要在调用大模型的时候增加一些特定的header,在python代码里可以比较简单的完成,比如这样:
openai.chat.completions.create(
model=model,
messages=msg,
extra_headers={'myAuth':"a long key"},
stream=stream,
)
但是这样就会导致一些工具比如Dify、LobeChat等,无法直接配置,大部分工具是不支持配置extra_headers的。
这时候你可以用一个反向代理来解决这个问题。
Nginx配置
server {
listen 8088; # 你可以选择其他端口
server_name localhost;
location / {
proxy_pass http://your_api_base_url;
proxy_http_version 1.1;
proxy_set_header Host $proxy_host;
proxy_set_header Authorization "Bearer no key";
proxy_set_header myAuth "a long key";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Forcing Nginx to disable buffering to stream the data immediately
proxy_buffering off;
chunked_transfer_encoding on;
}
}
这里有一个特别需要关注的点,注意这句话:proxy_set_header Host $proxy_host; 设置的Host不是$host 而是 $proxy_host,如果设置的是$host 会导致404.