设为首页 收藏本站
查看: 487|回复: 0

[经验分享] Nginx错误汇总

[复制链接]

尚未签到

发表于 2016-12-22 12:14:18 | 显示全部楼层 |阅读模式
  服务器常见Nginx错误汇总
  1.nginx:no live upstreams while connecting to upstream

no live upstreams while connecting to upstream
[error] 27212#0: *314 no live upstreams while connecting to   upstream, client: ip_address , server: example.com, request: "GET / HTTP/1.1", upstream: "http://example.com", host: "example.com", referrer: "http://example.com/mypages/"
  fail_timeout=15s其实就是如果上次请求发现服务无法正常返回,那么有15s的时间该server会不可用,但是一旦超过15s请求也会再次转发到该server上的,不管该server到底有没有真正的恢复。

upstream example.com  {
#  ip_hash;
server php01 max_fails=3 fail_timeout=15s;
server php02 max_fails=3 fail_timeout=15s;
}
server {
listen IP:80;
server_name example.com;
access_log /var/log/nginx/example.com.access;
error_log /var/log/nginx/example.com.error error;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass  http://$server_name/$uri;
proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment;
proxy_cache_bypass $http_pragma $http_authorization;
proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;
proxy_no_cache $http_pragma $http_authorization;
}
}
      如果你用过nginx plus其实你会发现nginx plus 提供的health_check机制更加强大,说几个关键词,你们自己去查! zone slow_start health_check match ! 这个slow_start其实就很好的解决了缓存预热的问题,比如nginx发现一台机器重启了,那么会等待slow_starts设定的时间才会再次发送请求到该服务器上,这就给缓存预热提供了时间。
  2.nginx:connect() failed (110:connection timed out )while connecting to upstream

[error] upstream timed out (110: Connection timed out) while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: howtounix.info, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8080", host: "howtounix.info", referrer: "requested_url"
  nginx配置如下: 

worker_processes 4;
pid /run/nginx.pid;
worker_rlimit_nofile 16384;
events {
worker_connections 10000;
# multi_accept on;
}
server {
listen       80;
server_name  howtounix.info;
location / {
...
proxy_read_timeout 60;
...
}
...
}
  出现这种问题意味着,Web服务在60内没有获得相应,导致超时。如修改为120则表示Nginx等待相应时间为120秒,默认为60秒。
  服务器文件数配置:

#########
ulimit -a  
core file size              (blocks, -c) 0  
data seg size               (kbytes, -d) unlimited  
scheduling priority                 (-e) 0  
file size               (blocks, -f) unlimited  
pending signals                 (-i) 32063  
max locked memory       (kbytes, -l) 64  
max memory size         (kbytes, -m) unlimited  
open files                      (-n) 65536  
pipe size            (512 bytes, -p) 8  
POSIX message queues     (bytes, -q) 819200  
real-time priority              (-r) 0   
stack size              (kbytes, -s) 8192  
cpu time               (seconds, -t) unlimited  
max user processes              (-u) 32063  
virtual memory          (kbytes, -v) unlimited  
file locks                      (-x) unlimited  

  Tomcat相关配置

maxThreads="500" minSpareThreads="150" acceptCount="250" acceptorThreadCount="2"
  优化方案:
  1.调整tcp_fin_timeout 
         2.调整端口范围
         3.增加Nginx服务器数据量,减少单台Nginx服务器接受请求数
  查看当前接口范围     

$ sysctl net.ipv4.ip_local_port_range
  输出结果如下    

net.ipv4.ip_local_port_range = 32768    61000
  设置新的端口范围   

# echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range
  或者使用如下方式  

$ sudo sysctl -w net.ipv4.ip_local_port_range="1024 64000"
  编辑/etc/sysctl.conf 文件,使修改结果永久生效,在文件末尾添加

# increase system IP port limits
net.ipv4.ip_local_port_range = 1024 65535
  查看连接情况
  netstat | grep 'TIME_WAIT' |wc -l
   如果出现大量的Time_Wait不必担心,可能问题在于存在大量的短连接,短时间内使用后快速关闭   

cat /proc/sys/net/ipv4/tcp_fin_timeout
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
或者/etc/sysctl.conf文件尾部添加
net.ipv4.tcp_fin_timeout=30
如果服务器不使用RPC服务或者NFS将他们关闭
/etc/init.d/nfsd stop
chkconfig nfsd off

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-317929-1-1.html 上篇帖子: nginx运行php 下篇帖子: nginx.conf 详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表