- nginx需要把请求body体的最大值修改一下,通过client_max_body_size来设置,我改成100M,就能上传大部分文档了
- 由于我主站是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;}
}