自学内容网 自学内容网

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;
}
});


};

原文地址:https://blog.csdn.net/weixin_42021688/article/details/136616983

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!