nginx使用proxy模块时,默认的读取超时时间是60s。

1. send_timeout

syntax: send_timeout the time

default: send_timeout 60

context: http, server, location

Directive assigns response timeout to client. Timeout is established not on entire transfer of answer, but only between two operations of reading, if after this time client will take nothing, then nginx is shutting down the connection.

2. 负载均衡配置时的2个参数:fail_timeout和max_fails

这2个参数一起配合,来控制nginx怎样认为upstream中的某个server是失效的当在fail_timeout的时间内,某个server连接失败了max_fails次,则nginx会认为该server不工作了。同时,在接下来的 fail_timeout时间内,nginx不再将请求分发给失效的server。

个人认为,nginx不应该把这2个时间用同一个参数fail_timeout来控制,要是能再增加一个fail_time,来控制接下来的多长时间内,不再使用down掉的server就更好了~

如果不设置这2个参数,fail_timeout默认为10s,max_fails默认为1。就是说,只要某个server失效一次,则在接下来的10s内,就不会分发请求到该server上

3. proxy模块的 proxy_connect_timeout

syntax: proxy_connect_timeout timeout_in_seconds

context: http, server, location

This directive assigns a timeout for the connection to the proxyserver. This is not the time until the server returns the pages, this is the proxy_read_timeout statement. If your proxyserver is up, but hanging (e.g. it does not have enough threads to process your request so it puts you in the pool of connections to deal with later), then this statement will not help as the connection to the server has been made. It is necessary to keep in mind that this time out cannot be more than 75 seconds.

4. proxy模块的proxy_read_timeout

syntax: proxy_read_timeout the_time

default: proxy_read_timeout 60

context: http, server, location

This directive sets the read timeout for the response of the proxied server. It determines how long NGINX will wait to get the response to a request. The timeout is established not for entire response, but only between two operations of reading.

In contrast to proxy_connect_timeout, this timeout will catch a server that puts you in it's connection pool but does not respond to you with anything beyond that. Be careful though not to set this too low, as your proxy server might take a longer time to respond to requests on purpose (e.g. when serving you a report page that takes some time to compute). You are able though to have a different setting per location, which enables you to have a higher proxy_read_timeout for the report page's location.

If the proxied server nothing will communicate after this time, then nginx is shut connection.

另一个参考:504 Gateway Time-out问题

常见于使用nginx作为web server的服务器的网站

我遇到这个问题是在升级discuz论坛的时候遇到的

一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out

现在的网站, 尤其某些论坛有大量的回复和很多内容的, 一个页面甚至有几百K

默认的fastcgi进程响应的缓冲区是8K, 我们可以设置大点

在nginx.conf里, 加入:

fastcgi_buffers 8 128k

这表示设置fastcgi缓冲区为8×128k

当然如果您在进行某一项即时的操作, 可能需要nginx的超时参数调大点, 例如设置成60秒:

send_timeout 60;

调整了这两个参数, 结果就是没有再显示那个超时, 可以说效果不错, 但是也可能是由于其他的原因, 目前关于nginx的资料不是很多, 很多事情都需要长期的经验累计才有结果。

proxy_redirect off;

proxy_set_header Host$host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10m;

client_body_buffer_size 128k;

proxy_connect_timeout90;

proxy_send_timeout90;

proxy_read_timeout90;

proxy_buffer_size 4k;

proxy_buffers324k;

proxy_busy_buffers_size 64k;

由于审标时间长  nginx 配置如下:

user nginx;

worker_processes12;

worker_rlimit_nofile102400;

error_log/var/log/nginx/error.log warn;

pid/var/run/nginx.pid;

events {

use epoll;

worker_connections102400;

}

http {

include/etc/nginx/mime.types;

default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request"'

'$status $body_bytes_sent "$http_referer"'

'"$http_user_agent" "$http_x_forwarded_for"';

access_log/var/log/nginx/access.log main;

sendfile on;#tcp_nopush on;

keepalive_timeout2048;

send_timeout2048;

fastcgi_connect_timeout2048;#gzip on;

include/etc/nginx/conf.d/*.conf;#设定负载均衡的服务器列表

upstream myServer {#weigth参数表示权值,权值越高被分配到的几率越大

#本机上的apache开8080端口

server 127.0.0.1:8080;#server 192.168.1.101:80 weight=4 max_fails=2 fail_timeout=25s;

#ip_hash;

}

server {

listen80;

server_name xxx.com;

server_name 1xxx.com;

server_name xx.xx.xx.xx;

location ~ ^/NginxStatus/{

stub_status on;

access_log off;

}

location/{

proxy_pass http://myServer;

proxy_redirect off;

proxy_set_header Host$host;

proxy_set_header X-Real-IP $remote_addr;#proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 50m;

client_body_buffer_size 512k;

proxy_connect_timeout1024;

proxy_send_timeout960;

proxy_read_timeout900;

proxy_buffer_size 128k;

proxy_buffers32128k;

proxy_busy_buffers_size 512k;#stub_status off;#启用nginx状态页

}#定义错误提示页面

#error_page 500 502 503 504 /50.html;

#location = error/50.html {

#root /var/www/website;

#}

}

}

nginx mysql设置远程连接超时_nginx中的超时设置相关推荐

  1. Linux中的MySql数据库远程连接

    Linux中的MySql数据库远程连接 rpm–qa |grep mysql安装了以下的包: mysql-libs-5.1.71-1.el6.x86_64 mysql-connector-java-5 ...

  2. Navicat 远程连接docker容器中的mysql 报错1251 - Client does not support authentication protocol 解决办法

    Navicat 远程连接docker容器中的mysql 报错1251 - Client does not support authentication protocol 解决办法 1).容器中登录my ...

  3. centos6安装mysql并远程连接_如何开启phpstudy中mysql的远程连接

    phpstudy是一款非常方便的php集成环境,许多人会使用它作为PHP网站的实验环境.phpstudy中也集成了Mysql数据库,那么集成环境中的mysql数据库如何才能远程连接呢? 通常情况下,实 ...

  4. 远程连接linux的mysql_【Linux开启mysql远程连接的设置步骤】 mysql开启远程连接

    相关热词搜索:Linux开启mysql远程连接的设置步骤,linux mysql 远程连接,linux连接mysql数据库, MySQL默认root用户只能本地访问,不能远程连接管理mysql数据库, ...

  5. mysql服务设置远程连接 解决1251 client does not support ..问题

    mysql服务设置远程连接 解决1251 client does not support ..问题 参考文章: (1)mysql服务设置远程连接 解决1251 client does not supp ...

  6. oneinstack mysql_使用oneinstack安装mysql设置远程连接教程简析

    使用oneinstack安装mysql设置远程连接教程简析 发布时间:2020-04-30 11:13:56 来源:亿速云 阅读:167 作者:三月 本文主要给大家介绍使用oneinstack安装my ...

  7. 开启本地MySql数据库远程连接

    解决MySQL不允许从远程访问的方法 开启 MySQL 的远程登陆帐号有两大步: 1.确定服务器上的防火墙没有阻止 3306 端口. MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 33 ...

  8. 连接linux系统的mysql,Linux系统MySQL开启远程连接

    1.远程连接上Linux系统,确保Linux系统已经安装上了MySQL数据库.登陆数据库.mysql -uroot -p(密码). 2.创建用户用来远程连接 GRANT ALL PRIVILEGES ...

  9. centos7安装mysql允许远程连接_CentOS7安装Mysql并配置远程访问

    (su root登录到root账户) 下载repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 安装rpm ...

最新文章

  1. GridControl摘录
  2. jsonStore加载远程和本地数据实例
  3. 基于 Laravel 5 构建的、支持模块化和多语言的 CMS —— AsgardCMS
  4. 基于VC++的GDI常用坐标系统及应用
  5. 设置程序中的html,如何在Behat中为HTML格式化程序设置自定义模板
  6. 如何将一个PDF文件里的图片批量导出
  7. c语言串口通信_stm32 串口通信收发说明
  8. idea swing 插件_【分享】我的idea配置
  9. 开课吧Java教程:如何用listFiles()方法
  10. 使用BIND安装智能DNS服务器(三)---添加view和acl配置
  11. 【算法•日更•第十六期】信息奥赛一本通1597:【 例 1】滑动窗口题解
  12. Linux虚拟文件系统之文件打开(sys_open())
  13. 微信开发者工具下载及公众号使用介绍
  14. 把ICDAR2019-LSVT原始数据集转为REC任务识别数据
  15. 免费的Bootstrap管理后台模板集合
  16. [IDE]vs code更新后变成英文版
  17. 虚拟服务器存储扩容方法,虚拟化数据中心存储扩容方案
  18. 修改C盘下的用户名(适合win10和win11)
  19. python 存储字典_python 字典存储
  20. Integer类型的比较

热门文章

  1. django的from组件
  2. 使用COE脚本绑定SQL Profile
  3. Linux 下源码编译安装 vim 8.1
  4. 【wpf WebBrowser 清空网站的CookieSession 清空用户登录状态】
  5. UVA 307 Sticks
  6. vue中父子组件通信的坑
  7. c#.net 获取时间日期年月日时分秒生成自动文件名格式
  8. 进程间通信(IPC)介绍(转)
  9. 【java】java开发中的23种设计模式详解
  10. 《深入Java虚拟机》笔记