一、现象
用浏览器的 network 可以看到部分js和png以及css都已经加载成功了,证明网络是没问题的,但是有部分js会出现net::err_content_length_mismatch的错误,加载不上
我的环境是用nginx代理之后的
原因是nginx代理后有的前端文件太大,那么nginx就需要把文件缓存到proxy_temp目录下,这个目录是需要创建的,当权限不足时就会报这个错误,我的是这样子。
二、解决方法
找到自己的nginx目录下,有一个proxy_temp的文件夹授权777(包括子文件夹),重启nginx就好了
三、设置缓存大小
http {
# http_proxy
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
……
模块http_proxy
这个模块实现的是nginx作为反向代理服务器的功能,包括缓存功能
1、proxy_connect_timeout 60
nginx和后端服务器连接超时时间(代理连接超时)
2、proxy_read_timeout 60
连接成功后,与后端服务器两个成功的响应操作之间超时时间(代理接收超时)
3、proxy_buffer_size 4k
设置代理服务器(nginx)从后端realserver读取并保存用户头信息的缓冲区大小,
默认与proxy_buffers大小相同,其实可以将这个指令值设的小一点。
4、proxy_buffers 4 32k
4个缓存区,每个32k,proxy_buffers缓冲区,nginx针对单个连接缓存来自后端realserver的响应,
网页平均32k以下的话,这样设置。
5、proxy_busy_buffers_size 64k
设置使用中的缓存区的大小,控制传输至客户端的缓存的最大
高负荷下缓冲大小(proxy_buffers*2)
6、proxy_max_temp_file_size
当proxy_buffers放不下后端服务器的响应内容时,会将一部分保存到硬盘的临时文件中,
这个值用来设置临时文件大小,默认1024M,它与proxy_cache没有关系。大于这个值,将从upstream服务器传回。设置为0禁用
7、proxy_temp_file_write_size 64k
缓存文件的大小
当缓存被代理的服务器响应到临时文件时,这个选项限制每次写临时文件的大小。
proxy_temp_path(可以在编译的时候)指定写到哪个目录
proxy_pass,proxy_redirect见location部分。
四、代理静态文件
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
proxy_pass http://127.0.0.1:8000;
include naproxy.conf;
}
location ~ .*\.(js|css)?$ {
expires 12h;
proxy_pass http://127.0.0.1:8000;
include naproxy.conf;
}