Nginx timeout超时如何配置

发布时间 - 2023-05-12 00:00:00    点击率:

keepalive_timeout

http 有一个 keepalive 模式,它告诉 webserver 在处理完一个请求后保持这个 tcp 连接的打开状态。若接收到来自客户端的其它请求,服务端会利用这个未被关闭的连接,而不需要再建立一个连接。

http keep-alive, 網頁的每一個請求都是http (圖片, css等), 而打開http 請求是要先建立tcp 連接, 而如果一個頁面每個請求都要打開及關閉一個tcp 連接就會做成資源的浪費. keepalive_timeout 就是當一個http 請求完成, 其tcp 連接會存留下來的時間, 如果這時有另一個http 請求過來, 會複用這個tcp 連接, 如果再沒有新的請求過來, 才會關閉其tcp連接

user nginx;
worker_processes 1;
 
error_log /var/log/nginx/error.log warn;
pid    /var/run/nginx.pid;
 
 
events {
  worker_connections 1024;
}
 
 
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;
  tcp_nodelay on;
 
 
  keepalive_timeout 65;
  client_max_body_size 8192m;
 
  #gzip on;
 
  #include /etc/nginx/conf.d/*.conf;
 
 
 
  server {
 listen 80 so_keepalive=30m::;
 listen 443 default ssl;
 
 ssl_certificate /etc/nginx/ssl/server.crt;
 ssl_certificate_key /etc/nginx/ssl/portalkey.key;
 #ssl_password_file /etc/nginx/ssl/ssl.pass;
 
 
    ssl_session_timeout 5m;
    ssl_protocols sslv2 sslv3 tlsv1;
    ssl_ciphers high:!anull:!md5;
    ssl_prefer_server_ciphers on;
 
 location / {
 proxy_request_buffering off;
 proxy_pass http://127.0.0.1:8011/;
 proxy_connect_timeout    180;
    proxy_send_timeout     180;
    proxy_read_timeout     180;
    send_timeout  180;
 }
 location /test1_url/ {
 proxy_pass http://127.0.0.1:8008/;
 proxy_connect_timeout    180;
    proxy_send_timeout     180;
    proxy_read_timeout     180;
    send_timeout  180;
 }
 location /test2_url/ {
 proxy_pass http://127.0.0.1:3000/;
 proxy_connect_timeout    180;
    proxy_send_timeout     180;
    proxy_read_timeout     180;
    send_timeout  180;
 }
  }
}

# 配置段: http,默认75s

keepalive_timeout 60;

  • send_timeout :发送数据至客户端超时, 默认60s, 如果连续的60s内客户端没有收到1个字节, 连接关闭

  • proxy_connect_timeout: nginx与upstream server的连接超时时间

  • proxy_read_timeout: nginx接收upstream server数据超时, 默认60s, 如果连续的60s内没有收到1个字节, 连接关闭

  • proxy_send_timeout: nginx发送数据至upstream server超时, 默认60s, 如果连续的60s内没有发送1个字节, 连接关闭

so_timeout:

當用戶跟server開啟了tcp connection --> 一段長時間這個connection 沒traffic (so_keepalive timeout) --> server 發出探測包看用戶是否還存在 --> 若探測包沒回, 則關閉tcp connection 

so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]
so_keepalive=30m::10
  will set the idle timeout (tcp_keepidle) to 30 minutes, leave the probe interval (tcp_keepintvl) at its system default, and set the probes count (tcp_keepcnt) to 10 probes.

以上三个参数只能使用一个,不能同时使用, 比如so_keepalive=on, so_keepalive=off或者so_keepalive=30s::(表示等待30s没有数据报文发送探测报文)


# nginx  # 客户端  # 都是  # 都要  # 要先  # 建立一个  # 未被  # 要再  # 服务端  # 有一个  # 而不需 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用美橙互联一键搭建多站合一网站?  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  深圳网站制作培训,深圳哪些招聘网站比较好?  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  Laravel怎么在Controller之外的地方验证数据  Internet Explorer官网直接进入 IE浏览器在线体验版网址  高端建站如何打造兼具美学与转化的品牌官网?  如何快速生成凡客建站的专业级图册?  SQL查询语句优化的实用方法总结  如何在IIS服务器上快速部署高效网站?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  如何在建站主机中优化服务器配置?  Python文件操作最佳实践_稳定性说明【指导】  微信小程序 require机制详解及实例代码  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  Laravel如何与Pusher实现实时通信?(WebSocket示例)  如何在宝塔面板中修改默认建站目录?  清除minerd进程的简单方法  高防服务器:AI智能防御DDoS攻击与数据安全保障  如何注册花生壳免费域名并搭建个人网站?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  个人摄影网站制作流程,摄影爱好者都去什么网站?  Laravel如何使用Blade组件和插槽?(Component代码示例)  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel如何自定义分页视图?(Pagination示例)  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Laravel怎么调用外部API_Laravel Http Client客户端使用  Python进程池调度策略_任务分发说明【指导】  深入理解Android中的xmlns:tools属性  韩国服务器如何优化跨境访问实现高效连接?  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  如何挑选高效建站主机与优质域名?  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  如何挑选最适合建站的高性能VPS主机?  如何快速查询域名建站关键信息?  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  如何在服务器上三步完成建站并提升流量?  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  使用spring连接及操作mongodb3.0实例  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  Android使用GridView实现日历的简单功能  如何挑选优质建站一级代理提升网站排名?  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  北京网站制作的公司有哪些,北京白云观官方网站?