nginx failed (13: Permission denied) while reading upstream

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx failed (13: Permission denied) while reading upstream相关的知识,希望对你有一定的参考价值。

参考技术A 错误:/proxy_temp/5/38/0000002385" failed (13: Permission denied) while reading upstream,

出现错误的问题:
当代理文件大小超过配置的proxy_temp_file_write_size值时,nginx会将文件写入到临时目录下(默认为/proxy_temp)。

解决1:调整proxy_temp权限:。
解决2:将nginx配置中的user nobody;  改成user root;

Nginx配置max_fails fail_timeout

目的: 通过配置max_fails、fail_timeout来达到当一台服务器访问出现非200时可以跳转到另一台服务器
操作: 配置nginx.conf文件 具体配置如下
upstream Site
{
#ip_hash;
server localhost1:18080 max_fails=10 fail_timeout=60s;
server localhost1:28080 max_fails=10 fail_timeout=60s;
}

现象:并没有什么用,如果一台服务器挂掉,nginx依然会分发到那台。

原因:

max_fails=number 设定Nginx与服务器通信的尝试失败的次数。在fail_timeout参数定义的时间段内,如果失败的次数达到此值,Nginx就认为服务器不可用。在下一个fail_timeout时间段,服务器不会再被尝试。 失败的尝试次数默认是1。设为0就会停止统计尝试次数,认为服务器是一直可用的。你可以通过指令proxy_next_upstream、 fastcgi_next_upstream和 memcached_next_upstream来配置什么是失败的尝试。 默认配置时,http_404状态不被认为是失败的尝试。

解决办法:
location /
{
proxy_pass http://126.42.32.3;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_connect_timeout 20s;
proxy_read_timeout 20s;
proxy_send_timeout 20s;
}

proxy_next_upstream:
和后端服务器建立连接时,或者向后端服务器发送请求时,或者从后端服务器接收响应头时,出现错误 timeout
和后端服务器建立连接时,或者向后端服务器发送请求时,或者从后端服务器接收响应头时,出现超时 invalid_header
后端服务器返回空响应或者非法响应头 http_500
后端服务器返回的响应状态码为500 http_502
后端服务器返回的响应状态码为502 http_503
后端服务器返回的响应状态码为503 http_504
后端服务器返回的响应状态码为504 http_404
后端服务器返回的响应状态码为404 off

以上是关于nginx failed (13: Permission denied) while reading upstream的主要内容,如果未能解决你的问题,请参考以下文章

nginx: [emerg] bind() to 0.0.0.0:18071 failed (13: Permission denied)

502 Bad Gateway - django + nginx + gunicorn - sock failed (13: Permission denied)

nginx反向代理failed (13: Permission denied) while reading upstream问题

Failed:(13: Permission denied)导致访问浏览器出现Nginx 500 Internal Server Error

Failed:(13: Permission denied)导致访问浏览器出现Nginx 500 Internal Server Error

[运维] 如何解决 nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)