django开发流式格式后的在nginx的部署的记录

关键记录.
django上传代码要导出配置
pip freeze > requirements.txt

这个很关键。后面部署直接读取的
关键记录.
django上传代码要导出配置
pip freeze > requirements.txt

这个很关键。后面部署直接读取的
关键记录.
django上传代码要导出配置
pip freeze > requirements.txt

这个很关键。后面部署直接读取的
1.进入宝塔,下载Python管理器
在这里插入图片描述2.添加项目,配置按照图片
项目路径选中在manage.py文件的这层
在这里插入图片描述
3.重新配置wsgi-file,看图,在后面新增/wsgi.py,也就是项目有配置好的,修改后重新运行
在这里插入图片描述4.项目是需要流式格式输出的,在本地是可以的,那nginx需要重新开启的
在反向代理修改,新增

#改流式格式输出
proxy_set_header Accept $http_accept; # 将请求中的 Accept 头传递给后端服务器
proxy_set_header Connection “”; # 清除 Connection 头,以便 Nginx 可以代理长连接
proxy_buffering off; # 关闭缓冲,以便实时地传递数据
proxy_read_timeout 3600s; # 设置代理的读取超时时间为 1 小时
# proxy_hide_header Upgrade;
代码👇


#PROXY-START/

location /api/
{
    proxy_pass http://127.0.0.1:8000/;
    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_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;

    proxy_http_version 1.1;
    
    #改流式格式输出
    proxy_set_header Accept $http_accept;  # 将请求中的 Accept 头传递给后端服务器
    proxy_set_header Connection "";  # 清除 Connection 头,以便 Nginx 可以代理长连接
    proxy_buffering off;  # 关闭缓冲,以便实时地传递数据
    proxy_read_timeout 3600s;  # 设置代理的读取超时时间为 1 小时
    # proxy_hide_header Upgrade;

    add_header X-Cache $upstream_cache_status;
    #Set Nginx Cache

    set $static_fileDPUeIsWj 0;
    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
        set $static_fileDPUeIsWj 1;
        expires 1m;
    }
    if ( $static_fileDPUeIsWj = 0 )
    {
        add_header Cache-Control no-cache;
    }
}
#PROXY-END/

这样在前端就可以支持流式格式请求了
注意流式格式在前端代码请求示例,因为是post的请求,这里就在记录一下,怎么请求这个流式代码

	const fetchStreamingData = (chat_id, role_id, centers) => {
		let isNewChat = false;
		if (!chat_id) {
			isNewChat = true;
			chat_id = UUID();
		}

		const _role = getRoleById(role_id);
		// console.log('_role===:', _role);
		const Url = 'http://127.0.0.1:8000/api/aistudio/chat';
		// 使用
		ctrl = new AbortController();
		fetchEventSource(Url, {
			method: 'POST',
			headers: {
				'Content-Type': 'application/json',
			},
			body: JSON.stringify({
				messages: centers,
			}),
			signal: ctrl.signal,
			openWhenHidden: true,
			async onopen(response) {
				// console.log('onopen', response);
			},
			onmessage(e) {
				const data = JSON.parse(e.data);
				// console.log('收到的数据===:', data);
				
			},
			onclose() {
				// console.log('onclose22');
			},
			onerror(err) {
				enableInput()
				ctrl.abort();
				throw err;
			}
		});


	};
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值