1. nginx需要把请求body体的最大值修改一下,通过client_max_body_size来设置,我改成100M,就能上传大部分文档了
  2. 由于我主站是https,但是coze后端返回的地址除了带有8889端口,协议也是http的,对于图片这种get方法的请求,浏览器会自动转成https从而正确触发nginx上的对应location,对于ajax请求,还是走了http,所以就出问题了。
    修改方案改成这样,实测可以上传了:
server {
    listen       443 ssl;
    server_name  coze.kennan.dev;

    ssl_certificate ssl/kennan.dev.crt;
    ssl_certificate_key ssl/kennan.dev.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        # sub_filter 替换所有coze-studio后端接口响应体中的minio资源地址,这样前端就不会请求8889端口了
        sub_filter 'http://coze.kennan.dev:8889' 'https://coze.kennan.dev/minio';
        sub_filter_once off;
        sub_filter_types 'application/json';
        proxy_pass http://127.0.0.1:8888;
        proxy_set_header Host $host;
    }

    location /minio/ {
        # 当前端请求改造后的图片地址时,将地址改写回来并转发到8889端口正确获取数据
        rewrite ^/minio/(.*)$ /$1 break;
        proxy_pass http://127.0.0.1:8889;
        proxy_set_header Host $host;
    }
}

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐