Nginx快速部署大模型接口反向代理

588 阅读1分钟

场景

当你有一个兼容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.