使用Caddy搭建Gemini API反代!速度稳定性远超免费反代!

事情的起因是我近期一直在使用网络上收集的各路的公益反代地址或者各种薅羊毛的API中转站(小黄脸部署New API),发现首字输出有时候会很慢,刚好手上有一个闲置的日本VPS,于是便想尝试自建一个Gemini的反向代理,希望能够优化首字输出的速度。


速度还是相当不错的,在9w上下文的情况下也能4秒内输出结果

Caddy自带对流式传输的诸多优化,使用NGINX的话会需要经过其他繁琐的配置,NGINX拥有更低的资源占用,不怕折腾的使用NGINX是更好的选择。本教程只需要简单无脑复制粘贴即可完成部署。

切忌使用香港服务器,Gemini API不对香港提供服务

可将本文全文复制给大模型要求大模型给出NGINX版本的部署方案

~
第一步:安装 Caddy

不同发行版使用的软件包管理器不同,此处只给出Debian/Ubuntu以及AlpineLinux的安装命令

如果你使用其他发行版,具体的安装方法可以向任一大模型咨询

#对于Ubuntu/Debian
sudo apt update #更新软件包索引
sudo apt install caddy #安装caddy

#对于AlpineLinux
apk update #更新软件包索引
apk add caddy #安装caddy

#验证是否成功安装
caddy --help
#如果顺利输出了指令向导便表示一切正常!

第二步:创建 Caddy 的配置文件

使用cat创建并写入配置文件

如果你的服务器上正在使用Caddy运行其他什么项目,那么这一步将会覆写掉你原有的配置,鉴于这篇教程的主要受众是小白,具体的处理方法这里不过多赘述(其实我只是懒得写哈哈)

sudo cat <<EOF > /etc/caddy/Caddyfile #如果你使用的是Alpine,会提示没有sudo软件包,可以先使用su指令进入root用户,之后再直接裁取粘贴cat之后的指令即可
# 监听指定的端口,下方以6667为例,如果你的6667端口未被占用,你可直接使用此端口,或选择一个没有被其他服务占用的端口,
http://:6667 {
    # 将所有请求反向代理到 Gemini API
    reverse_proxy https://generativelanguage.googleapis.com {
        # 关键:设置正确的 Host 头
        header_up Host {upstream_hostport}
        
        # 清洗掉所有可能暴露来源的请求头,绕过Gemini风控
        # -HeaderName 的语法是告诉 Caddy 在转发前删除这个请求头
        header_up -X-Real-IP
        header_up -X-Forwarded-For
        header_up -X-Forwarded-Proto
        header_up -Accept-Language
        header_up -User-Agent
    }
}
EOF

第三步:重启 Caddy 并设置为开机自启、配置防火墙

#对于Ubuntu/Debian
sudo systemctl restart caddy #重启服务
sudo systemctl enable caddy #将 Caddy 添加到开机自启
sudo ufw allow 6667/tcp # 开放6667端口(如果你在上面设置的是其他端口请做相应修改)
sudo ufw reload # 重新加载防火墙规则,使其生效

#对于AlpineLinux
sudo rc-service caddy restart #重启 Caddy 服务
rc-update add caddy default #将 Caddy 添加到开机自启
#AlpineLinux默认开放全部端口,无需特别设置

至此,我们的Gemini API反代便已搭建成功,接下来我们验证一下,你也可以使用你自己的任一验证方法
在你的Windows个人电脑上运行:

curl -N "http://你的服务器IP:端口/v1beta/models/gemini-2.5-flash:streamGenerateContent" -H "x-goog-api-key: [你的API KEY,删掉括号]" -H "Content-Type: application/json" -X POST -d "{\"contents\":[{\"parts\":[{\"text\":\"你好呀\"}]}]}"

如果一切顺利的话,你就能在稍后的响应中看见诸如“你好呀!有什么我能够帮你的吗?”的回应!

1 个赞

可以的捏,比哪些用AI写的好多了

加油!