1.设置反向代理后静态资源报错:been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource,解决如下:
#解决nginx反代字体跨域问题
location ~ .*\.(eot|ttf|woff|woff2|svg)$
{
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
}
2.设置反向代理后静态资源加载缓慢,一直在转圈,最终报错:Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING 200
解决如下:
①.如果开启了websocket,可以试着关闭他试试?
②可以试着增加缓冲区大小
proxy_buffer_size 1024k;
proxy_buffers 16 1024k;
proxy_busy_buffers_size 2048k;
proxy_temp_file_write_size 2048k;
③错误分析:
1.nginx配置缓存区设置过小
2.nginx的临时目录(/proxy_temp)过大或没有权限写入缓存文件
3.磁盘空间不足
经过验证是第一种原因(nginx配置缓冲区设置过小)
问:nginx的缓冲区作用是什么?
答:如果客户端到nginx速度快,nginx到服务器速度慢,没有缓冲区,一点点数据量就直接发到客户端,十分浪费性能。
有了缓冲区,积累到一定量,再传输到客户端,减少了Tcp请求。
相反,客户端到nginx速度慢,nginx到服务器速度快,没有缓冲区,
nginx到服务器的连接就会一直保持在那边,直到客户端接受完毕。
有了缓冲区,返回内容放到缓冲区后,nginx到服务器的连接就能断开了,客户端从缓冲区拉取即可。