当前位置: 首页 > 编程笔记 >

详解Nginx服务器中配置超时时间的方法

艾泰
2023-03-14
本文向大家介绍详解Nginx服务器中配置超时时间的方法,包括了详解Nginx服务器中配置超时时间的方法的使用技巧和注意事项,需要的朋友参考一下

一、啥时候用到

       用来设置请求资源和服务器返回的时间,保证一个请求占用固定时间,超出后报504超时!这样可以保证一个请求占用过长时间。

二、主要参数


      使用nginx服务器如果遇到timeou情况时可以如下设置参数,使用fastcgi:

         fastcgi_connect_timeout 75;  链接

         fastcgi_read_timeout 600;   读取

         fastcgi_send_timeout 600;   发请求

     这两个选项.
         fastcgi_read_timeout是指fastcgi进程向nginx进程发送response的整个过程的超时时间
         fastcgi_send_timeout是指nginx进程向fastcgi进程发送request的整个过程的超时时间

     这两个选项默认都是秒(s),可以手动指定为分钟(m),小时(h)等


三、其他常用参数以及参数说明


        keepalive_timeout  600;   连接超时时间,1分钟,具体时间可以根据请求(例如后台导入)需要的时间来设置

        proxy_connect_timeout 600;    1分钟

        proxy_read_timeout 600;    1分钟

nginx超时配置参数说明:

keepalive_timeout

语法 keepalive_timeout timeout [ header_timeout ]

默认值 75s

上下文 http server location

说明 第一个参数指定了与client的keep-alive连接超时时间。服务器将会在这个时间后关闭连接。可选的第二个参数指定了在响应头Keep-Alive: timeout=time中的time值。这个头能够让一些浏览器主动关闭连接,这样服务器就不必要去关闭连接了。没有这个参数,nginx不会发送Keep-Alive响应头(尽管并不是由这个头来决定连接是否“keep-alive”)

两个参数的值可并不相同

注意不同浏览器怎么处理“keep-alive”头

MSIE和Opera忽略掉"Keep-Alive: timeout=<N>" header.

MSIE保持连接大约60-65秒,然后发送TCP RST

Opera永久保持长连接

Mozilla keeps the connection alive for N plus about 1-10 seconds.

Konqueror保持长连接N秒

proxy_connect_timeout

语法 proxy_connect_timeout time

默认值 60s

上下文 http server location

说明 该指令设置与upstream server的连接超时时间,有必要记住,这个超时不能超过75秒。

这个不是等待后端返回页面的时间,那是由proxy_read_timeout声明的。如果你的upstream服务器起来了,但是hanging住了(例如,没有足够的线程处理请求,所以把你的请求放到请求池里稍后处理),那么这个声明是没有用的,由于与upstream服务器的连接已经建立了。

proxy_read_timeout

语法 proxy_read_timeout time

默认值 60s

上下文 http server location

说明 该指令设置与代理服务器的读超时时间。它决定了nginx会等待多长时间来获得请求的响应。这个时间不是获得整个response的时间,而是两次reading操作的时间。

client_header_timeout

语法 client_header_timeout time

默认值 60s

上下文 http server

说明 指定等待client发送一个请求头的超时时间(例如:GET / HTTP/1.1).仅当在一次read中,没有收到请求头,才会算成超时。如果在超时时间内,client没发送任何东西,nginx返回HTTP状态码408(“Request timed out”)

client_body_timeout

语法 client_body_timeout time

默认值 60s

上下文 http server location

说明 该指令设置请求体(request body)的读超时时间。仅当在一次readstep中,没有得到请求体,就会设为超时。超时后,nginx返回HTTP状态码408(“Request timed out”)

lingering_timeout

语法 lingering_timeout time

默认值 5s

上下文 http server location

说明 lingering_close生效后,在关闭连接前,会检测是否有用户发送的数据到达服务器,如果超过lingering_timeout时间后还没有数据可读,就直接关闭连接;否则,必须在读取完连接缓冲区上的数据并丢弃掉后才会关闭连接。

resolver_timeout

语法 resolver_timeout time

默认值 30s

上下文 http server location

说明 该指令设置DNS解析超时时间

proxy_send_timeout

语法 proxy_send_timeout time

默认值 60s

上下文 http server location

说明 这个指定设置了发送请求给upstream服务器的超时时间。超时设置不是为了整个发送期间,而是在两次write操作期间。如果超时后,upstream没有收到新的数据,nginx会关闭连接

proxy_upstream_fail_timeout(fail_timeout)

语法 server address [fail_timeout=30s]

默认值 10s

上下文 upstream

说明 Upstream模块下 server指令的参数,设置了某一个upstream后端失败了指定次数(max_fails)后,该后端不可操作的时间,默认为10秒

四、实例

这里来看一个把Nginx的超时时间上调的例子。
看看时间是否符合要求,在nginx.config里面的三个参数:

  • fastcgi_connect_timeout 300;
  • fastcgi_send_timeout 300;
  • fastcgi_read_timeout 300;

以上的单位是秒。

如果使用了Nginx的代理,可以在块里加上:

proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;

变成:

location /foo {
   proxy_pass http://xxx.xxx.xxx.xxx:8080/foo;
   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_connect_timeout 300s;
   proxy_send_timeout 300s;
   proxy_read_timeout 300s;
   access_log /var/log/nginx/access.foo.log main;
   error_log /var/log/nginx/error.foo.log;
}
 类似资料:
  • 本文向大家介绍windows 时间服务器配置方法详解,包括了windows 时间服务器配置方法详解的使用技巧和注意事项,需要的朋友参考一下 最近发现公司的服务器时间一直不准确,也无法和外部时间源进行同步。公司是域环境,按理说客户端PC应该自动和域控AD进行时间同步,但是PC机时间老是不能同步,不是慢了就是快了,就是和域控时间不一致。其它服务器没有加入域,但也希望和AD时间进行同步,可是老是出各种问

  • 本文向大家介绍Nginx服务器Nginx.com配置文件详解,包括了Nginx服务器Nginx.com配置文件详解的使用技巧和注意事项,需要的朋友参考一下 在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. 以上是一些基本的配置,使用Nginx最大的好处就是负载均衡 如果要使用负载均衡的话,可以修改配置http节点如下: 以上所述是小编给大家介绍的Nginx服务器

  • 本文向大家介绍Nginx服务器中关于SSL的安全配置详解,包括了Nginx服务器中关于SSL的安全配置详解的使用技巧和注意事项,需要的朋友参考一下  本文向你们展示如何在nginx的web服务器上设置更强的SSL。我们是通过使SSL无效来减弱CRIME攻击的这种方法实现。不使用在协议中易受攻击的SSLv3以及以下版本并且我们会设置一个更强的密码套件为了在可能的情况下能够实现Forward Secr

  • 本文向大家介绍iOS中设置网络超时时间+模拟的方法详解,包括了iOS中设置网络超时时间+模拟的方法详解的使用技巧和注意事项,需要的朋友参考一下 设置方法如下: 在封装的网络请求类里面如下设置 AFWEBAPI_REQUEST_TIMEOUT 这个参数为超时时间 在封装的方法里面,在失败的回调里面写下如下代码,至于怎么处置就看自己了,我这里具体需求没有给,我先做了一个弹框处理 如何去调试呢,难道去电

  • 本文向大家介绍Nginx服务器搭建和基本配置详解,包括了Nginx服务器搭建和基本配置详解的使用技巧和注意事项,需要的朋友参考一下 Nginx(engine X) 是一个高性能的 HTTP 服务器和反向代理服务器,这款软件开发的目的是为了解决 C10k 问题。 Nginx 的架构利用了许多现代操作系统的特性,以实现一个高性能的 HTTP 服务器。例如在 Linux 系统上,Nginx 使用了 ep

  • 本文向大家介绍详解linux ntp服务器时间同步设置,包括了详解linux ntp服务器时间同步设置的使用技巧和注意事项,需要的朋友参考一下 linux ntp服务器时间同步设置 时间同步这个需求在很多地方都有。比如安装cm和cdh的话,需要ntp时间同步,否则会出现红色警告 这里主要是设置一台服务器作为主服务器,让其他机器同步这台机器的时间,而且是配置的本地时间,没有同步internet时间,