1
allenzhangSB 3 小时 4 分钟前
你都用了 claude code 了, 怎么流式传输还来这里问?
|
2
Jgege 3 小时 2 分钟前
檢查一下你的 Nginx 配置,是否開啟了 proxy_buffering off;?套了 CF 的話,緩存機制會截斷流式輸出。
|
3
Jgege 2 小时 59 分钟前
我之前在 Debian 環境下處理過類似的 CLI 流式混淆問題,有一套專門針對 CF 反代的參數優化。如果你急著上生產環境,可以深入聊聊。
|
4
BestEicky OP @allenzhangSB 就是不懂才来问哇,虚心请教一下
|
5
BestEicky OP |
6
Jgege 1 小时 39 分钟前
@BestEicky
如果你已經關閉了 Nginx 的 Buffering ,問題大概率出在 Cloudflare 的 Proxy Status 上。CF 默認會對響應進行壓縮和緩存,這會切斷 SSE (Server-Sent Events) 的流式輸出。 你可以嘗試在 Nginx 配置中強制加入這個 Header: add_header X-Accel-Buffering no; 另外,檢查一下 CF 的 Page Rules ,確保該路徑的 Cache Level 設為 Bypass ,或者暫時關閉 CF 的小黃雲( Proxy )改為 DNS Only 實測一下。如果還不行,可能需要檢查你的後端 API 是否正確發送了 text/event-stream 。 如果你測過之後生效了,麻煩告知一聲。因為這種 Cloudflare 疊加 Nginx 的流式傳輸異常在 Debian 13 下有幾種不同的底層表現,我想確認這個方案的普適性。 |
7
BestEicky OP @Jgege 感谢大佬耐心回复,但是我测试了,在 opencode 里面是很正常的流式传输,哪怕不配置那三项,都是正常的,但是我用 claude code 终端,就不行,每次回答都是最后一次性吐所有的结果
|
8
Jgege 1 小时 24 分钟前
@BestEicky 很有意思的對比。既然 opencode 正常,說明你的 Nginx 管道基本是通的。claude code 終端的行為差異,大概率是因為它對 HTTP/2 或 gRPC-web 的依賴程度不同。
你檢查一下兩者的 Content-Type 是否一致?有些 CLI 工具如果檢測不到 text/event-stream 會自動降級為全量緩衝。 另外,你是在 Debian 環境下跑的嗎?試試用 curl -N -v 直接請求你的 API 地址,看看原始數據是一點點跳出來,還是憋一大塊才出來。這能徹底幫你斷定是 網絡層 還是 應用層( claude code ) 的問題。 |