nginx 出现413 Request Entity Too Large问题的解决方法
在服务器上发布了vue项目,原本在测试环境正常的大文件上传组件突然报错,浏览器里面上传过程返回的response总是报413错误。
检查了一下,文件上传的组件没有问题,在idea开发环境中一切正常,就是在项目发布到服务器上之后报错,而且和明确是413问题。
查了一下,服务器上使用了nginx来导游vue项目。
因此怀疑是nginx阻拦了请求。在网上查了一下,需要在http配置节里面配置
client_max_body_size 20m;
nginx在不设置这一项时,默认的上传request大小为1M,好小。于是将此项修改为50M,总够大得了吧?
修改后保存,
nginx -s reload
重新访问,一切恢复正常。
在这里补充说明一下vue项目的发布原理。
vue项目其实在服务器上发布后没有容器,也不需要容器,他就是一堆文件。
nginx代理引导request指向vue所在的项目之后,其实就是把页面转发给客户端浏览器,浏览器进行解析和显示,所以vue项目本身处理不了类似统一权限登录这样需要在服务端接受并记录、处理票据的复杂请求。
上一次有人想要在vue项目里面处理统一登录门户转发过来的请求,我就直接告诉他,不要这么想,vue根本处理不了,这也是它的安全机制之一,要处理,必须开一个spingboot服务,由spingboot服务处理统一登录门户转发过来的请求、保存好票据这些东西之后再进入vue项目进行处理,否则你研究半天也是白忙活。原理不对。