`
corejava2008
  • 浏览: 296548 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nginx错误汇总

阅读更多

服务器常见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

 

分享到:
评论

相关推荐

    nginx-1.12.2安装.docx

    #### 一、安装问题汇总 **问题1:执行./configure检查报错** ``` ./configure:error:theHTTPrewritemodulerequiresthePCRElibrary. Youcaneitherdisablethemodulebyusing--without-http_rewrite_module option,...

    淘宝网Nginx应用、定制与开发实战.pdf[书签版]

    还提及了多种日志方式、主机信息调试、Tengine的错误信息提示、worker进程与CPU亲缘性的优化、user_agent模块以及对Nginx的limit_req模块增强。主 动健康检查、输入体过滤器、职能进程机制、Tengine中的命令行参数...

    2019年BATJ最新面试414道题(含答案解析)Nginx篇.pdf

    stub_status指令提供了关于Nginx工作状态的简单汇总,包括当前的活动连接数、连接处理情况等。sub_filter指令则用于替换响应中的文本内容,可以用于实现动态内容的静态化。 Nginx支持将请求压缩到上游,这可以减少...

    nginx入门指南

    如果配置有误,Nginx会显示错误信息,帮助开发者快速定位问题所在。 **4. Nginx启动** 启动Nginx服务通常使用命令`nginx`。如果想查看启动过程中的详细信息,可以加上`-v`或`-vv`参数。 **5. Nginx配置文件修改...

    多线程自定义规则 Nginx Access Log 分析器(比AWK快)

    在IT行业中,日志分析是一项至关重要的任务,它可以帮助我们理解服务器的工作状态,发现性能瓶颈,定位错误,以及进行安全审计。Nginx作为一款高性能的HTTP和反向代理服务器,其Access Log记录了所有客户端请求的...

    Nginx常用技巧使用实例汇总

    以下是对标题和描述中提及的Nginx常用技巧的详细解释: 1. **Server优先级**: 在Nginx配置中,多个`server`块监听同一端口时,匹配顺序有特定规则。首先,会尝试匹配`server_name`完全一致的区块,接着是通配符...

    nginx、Apache、IIS服务器解决 413 Request Entity Too Large问题方法汇总

    当用户尝试上传大文件或POST大量数据时,如果超过了默认的`client_max_body_size`限制(默认为1MB),nginx会返回413错误。要解决这个问题,你需要编辑nginx的配置文件`nginx.conf`。在`http`、`server`或`location`...

    Java面试题汇总及答案

    ### Java面试题汇总及答案解析 #### 一、JUnit 测试框架使用详解 **1.1 JUnit4 单元测试用例执行顺序** 在JUnit4中,单元测试的执行顺序如下: - `@BeforeClass`: 在所有测试方法之前运行一次,通常用于设置一些...

    Rails相关电子书汇总二

    标题 "Rails相关电子书汇总二" 提供了一个线索,表明这个压缩包可能包含了与Ruby on Rails框架相关的电子书籍。Ruby on Rails(简称Rails)是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)...

    php 手册汇总(zend,thinkphp)

    7. **PHP与Web服务器集成**:理解PHP如何与Apache、Nginx等服务器协同工作,优化性能。 通过这份“php 手册汇总(zend,thinkphp)”,开发者不仅可以深入理解PHP语言本身,还能熟练掌握两大主流框架的运用,从而提升...

    PHP中错误与异常的日志记录用法分析

    如《PHP错误与异常处理方法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门...

    php开发有关笔记综合汇总

    6. **错误与异常处理**:通过`error_reporting()`设置错误报告级别,`try-catch`用于捕获和处理异常。 ### PHP 和 HTML 集成 PHP可以方便地插入到HTML文档中,通过`<?php ... ?>`标签包裹PHP代码。例如,使用`echo...

    LAMP架构全套参考手册汇总(php,mysql,css,script)

    例如,学会使用`ls`, `cd`, `mkdir`, `rm`, `vi/vim`等命令,以及如何编辑配置文件如`/etc/nginx`或`/etc/httpd`下的Apache配置。 2. Apache:Apache HTTP Server是世界上最流行的Web服务器软件,用于处理HTTP请求...

    网络安全员题库答案解析.xls

    11 关于负载均衡下面说法错误的是( ) 单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高 大量的并发访问或数据流量分担到多台节点...

    oracle数据库面试题目汇总

    如果在事务过程中发生错误,可以通过回滚事务撤销所有变更。 3. 查询系统时间: 在Oracle数据库中,可以使用`SELECT sysdate FROM dual`来获取当前系统时间。 4. 触发器的作用: 触发器是一种在特定数据库操作(如...

    LLinux操作系统的安装部署及安全设置

    5. 常见问题汇总: - 字符集问题:通常在字符集未正确设置的情况下出现。解决办法是检查和设置正确的字符集。 - FTP问题:可能涉及配置、权限等,需要检查相关设置是否正确。 - Linux VNC远程桌面界面连接:配置...

    1512001066_吴跟强_工程项目实践报告1

    实验时间为四周,学生需独立完成Nginx日志的采集、存储、分析和展示,包括URL访问量排名和404错误IP排名的展示。此外,还要求学生自学Spark算法操作、数据爬取技术和HighCharts的使用。 实验环境包括Linux操作系统...

    互联网大厂超全前端面经汇总

    ### 互联网大厂超全前端面试经验汇总 #### HTTP协议中的POST与GET方法区别 - **GET**:主要用于获取资源,请求参数附加在URL之后,安全性较低,不适合传输敏感信息,但请求会被缓存,能被收藏,无长度限制。 - **...

    awesome-programming-resources:收集优秀的Java编程资源,涵盖:Java求职面试,书籍,计算机网络,操作系统,架构,算法,前端开发,Redis,Mysql,Nginx,ZK,MQ等

    涵盖:Java求职面试,书籍,计算机网络,操作系统,架构,算法,前端开发,Redis,Mysql,Nginx,ZK,MQ,深度学习等。如果有推荐的教程或资源,欢迎补充。随着时间的推移,知识点难免有出入和错误,欢迎各位提Java ...

Global site tag (gtag.js) - Google Analytics