gin 服务端无法使用sse流式&nginx配置

gin 服务端无法使用sse流式&nginx配置

      最近接了一个私活,主要是用gin写一个接口,通过调取Gemini流协议并返回流协议给前端,我在本地调试到时候发现是可以正常返回流协议,但是部署到服务器上之后,发现返回到流协议像是一次性返回,我最开始是怀疑是服务器的代码有问题,检查了代码发现是最新的,然后又尝试通过ip+端口形式进行访问,同样是可以正常返回流协议,所以我猜测是nginx配置有问题,最终经过修改nginx配置,最后实现,下面跟大家介绍配置方法

      在我们原有的nginx配置中加入这一个配置

 location /gemini {
        proxy_pass http://127.0.0.1:8080;  # Gin 应用的地址和端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_buffering off;  # 禁用缓冲
        proxy_read_timeout 300;  # 设置读取超时时间
    }

gemini是我这个请求返回流协议的端口名字,大家可以根据自己的接口名称自行修改,然后是关于这一段

proxy_pass http://127.0.0.1:8080;

如果你的gin访问端口是8080,就改成这样8080,如果不是的话,请自行改成自己的服务对应端口,然后便是我的gin是用docker部署的,我这里就不填127.0.0.1,我这里是改成了自己的服务器内网IP。

      最后,便是重新加载nginx配置,通过访问发现可以正常输出流模式了,下面给大家贴出效果图

WX20241104-083451@2x.png

0条评论

发表评论