背景:
最近在调试chatgpt对话网站,因为返回数据比较大,就用到到了流读取。开始调用http一点都没有问题,但是上生产切换https时候始终抱错?这个问题纠结2天,终于在你chatgpt加持解决了
接口地址 :https 为什么是一大段返回,而http是一行一行返回?
这是因为 https
和 http
协议在传输数据时使用的是不同的传输方式。
http
协议使用的是明文传输,数据是一行一行地传输的,每行数据以回车符和换行符结尾。这种传输方式比较简单,但是不够安全,容易被窃听和篡改。
https
协议使用的是加密传输,数据是一大段一大段地传输的,每段数据的长度是不固定的。这种传输方式比较安全,可以保护数据的机密性和完整性,但是相对于 http
协议来说,传输效率会稍微低一些。
因此,如果你需要传输机密性较高的数据,建议使用 https
协议进行传输。如果你需要传输的数据不太机密,可以使用
http
协议进行传输。
如果要改成https 如果要改成一行一行返回,如何修改nginx配置?
如果你想要将 HTTPS 协议下的数据返回方式改为一行一行返回,可以通过修改 Nginx 的配置文件来实现。
在 Nginx 的配置文件中,可以通过
proxy_buffering
和
proxy_buffer_size
这两个参数来控制数据的缓存和传输方式。默认情况下,Nginx 会开启缓存,将数据缓存到内存中,然后一次性传输给客户端。如果你想要将数据一行一行地传输给客户端,可以将
proxy_buffering
参数设置为
off
,并将
proxy_buffer_size
参数设置为一个较小的值,例如
1
。
以下是一个示例配置文件:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://backend;
proxy_buffering off;
proxy_buffer_size 1;//这个实际作用不大,可以注销掉
}
}
在这个示例配置文件中,我们将
proxy_buffering
参数设置为
off
,并将
proxy_buffer_size
参数设置为
1
,这样就可以将数据一行一行地传输给客户端了。同时,我们还开启了 HTTPS 协议,并指定了 SSL 证书和私钥的路径。
最后
配置完后,nginx重新加载一下配置
nginx -s reload
完整支持hhttps了,大家可以注册账号尝试一下,认识我的联系我,免费送一个月会员,
https://yizhan.club