在使用nginx的时候,有时会发现报 proxy_temp Permission denied 错误,这时候nginx会报error信息,原因其实就是 proxy_temp 没有读取权限,有两种解决办法:
在开发过程中,遇到前端页面加载css,js或woff,ttf 文件的时候,经常出现 ERR_CONTENT_LENGTH_MISMATCH 的报错情况。但不是所有的js或css 报错,报错的文件较没报错的文件偏大。并且报错的文件也可以单独在浏览器中打开,所以排除了最简单的地址错误。前端项目是由nginx代理的,所以可以查看nginx的日志,看看有无线索。
将nginx启动用户改为有权限的用户(如 root)或者将proxy_temp授权给启动用户
user root;
更改nginx的配置,将缓冲区调整大一点,以下几项需要同时调整配置
故障描述
一次新sdk发布上线后,nginx正向代理出现很多500的请求,查看error.log发现有client_body_temp permission denied报错。
client_body_temp
如果客户端POST一个比较大的文件,长度超过了nginx缓冲区的大小,需要把这个文件的部分或者全部内容暂存到client_body_temp目录下的临时文件。
故障原因:
新版本sdk发布后,发起的post请求body增大,超出了nginx缓存区大小,所以需要暂存在client_body_temp中,因nginx启动用户为app,故没有权限写入这个目录,导致报错。
解决办法:
1、chown app:app client_body_temp
2、nginx中修改配置:增大client_body_buffer_size设置
有话要说