03月01, 2018

nginx的记录(3)

去年做了一个node后台的服务,然后有同事反馈了一个奇葩的问题:

长久没有管页面,然后点会请求后台服务的链接,会报请求异常的错误,刷新一下就正常了。因为当时是偶发现象,也不了了之。

这段时间因为要看这个文档的关系,所以我就会使用这个服务,然后也出现了这样的问题,于是下定决定去搞定。

记录了一下报错的时间点,我先查了一下node后端服务的日志:

grep "ERROR" 文件名

发现并没有。于是猜测是nginx的,从access.log查到error.log(其实一般都是error.log里面的)。

让我找到这样一段错误信息:

2018/03/01 10:10:50 [crit] 15558#0: *162964 mkdir() "/opt/nginx/proxy_temp/1/11" failed (13: Permission denied) while reading upstream, client: 10.200.102.51, server: 192.168.150.223, request: "GET /api/getModuleById?id=15 HTTP/1.1", upstream: "http://192.168.150.223:1521/api/getModuleById?id=15", host: "192.168.150.223:8084", referrer: "http://192.168.150.223:8084/index.html"

引用这篇文章的内容:

首先看一下nginx 反向代理参数说明

proxy_connect_timeout 600; #nginx跟后端服务器连接超时时间(代理连接超时)

proxy_read_timeout 600; #连接成功后,后端服务器响应时间(代理接收超时)

proxy_send_timeout 600; #后端服务器数据回传时间(代理发送超时)

proxy_buffer_size 32k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小

proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)

proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传

问题就出在proxy_temp_file_write_size上,当你的文件超过该参数设置的大小时,nginx会先将文件写入临时目录(缺省为nginx安装目下/proxy_temp目录),

如果nginx对prxoy_temp没有权限就会写不进去,结果就是只显示部分页面。

原来运维在配置nginx时,没有指定用户,它默认是nobody,而上面的proxy_temp是有一个用户权限的。

感觉真是神坑!

本文链接:www.my-fe.pub/post/note-for-nginx-3.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。