chatgpt-web
chatgpt-web copied to clipboard
使用 nginx 配置 octet-stream (打字特效)无法实现
在issues很多人提出的解决方法是 default_type octet-stream; proxy_buffering off; chunked_transfer_encoding on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 这个配置是可以的,但是要重启nginx,重启这个不只是nginx-t + nginx -s reload这么简单,要进去进程里面把nginx的进程杀死再重启,就可以生效了
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
我的解决办法增加这个配置
systemctl restart nginx 解决了,核心原因是nginx默认没有开websockets
无法实现打字机效果有以下两种可能 如果是你的前端,并且打包部署了,那么相当于静态页面,则需要将api的请求通过ng转发到后端的api接口,如下配置即可 location /api { rewrite ^/api/?(.*)$ /$1 break; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Connection ""; proxy_http_version 1.1; proxy_pass http://127.0.0.1:3002/; }
如果你用的国内服务器,用了另外一台梯子服务器搭了代理,通过ng代理走的openai的api,那么代理的ng也要配置,如下是配置参考 location /openai/ { default_type octet-stream; proxy_buffering off; chunked_transfer_encoding on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 120; proxy_pass https://api.openai.com/; proxy_set_header Host api.openai.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_http_version 1.1; }
我是用Docker compose架构出来的,以上答案不知道怎么配置
proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade";
我的解决办法增加这个配置
systemctl restart nginx 解决了,核心原因是nginx默认没有开websockets
worked for me
proxy_buffering off; 这一句是关键