博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx配置长连接
阅读量:6087 次
发布时间:2019-06-20

本文共 2427 字,大约阅读时间需要 8 分钟。

http {
  keepalive_timeout 20; --长连接timeout keepalive_requests 8192; --每个连接最大请求数 }
events {    worker_connections  102400;}

 

 

 

转:http://bert82503.iteye.com/blog/2152613

先说说服务为什么使用HTTPs长连接技术?有如下几个原因:对响应时间要求较高;服务走的是公网,客户端与服务端的TCP建立的三次握手和断开的四次握手都需要40ms左右(真实数据包计算出来的),共需要80ms左右;每个接入方使用的IP就若干个,需要建立的请求连接有限。使用长连接技术,可以大幅减少TCP频繁握手的次数,极大提高响应时间;同时,即使使用长连接技术,也不需要消耗很多的系统资源用来缓存sockets会话信息。 以下是在自己电脑上验证三者之间的长连接请求,连接存活时间都为5min。【环境】操作系统:Ubuntu 14.04 LTSNginx:1.6.2Tomcat:7.0.51JDK:1.7.0_51Client:HttpClient 4.3.5 【相关配置】1. Nginx - 反向代理nginx.conf:http {    ...    ##    # 与Client连接的长连接配置    ##    # http://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_requests    # 设置通过"一个存活长连接"送达的最大请求数(默认是100,建议根据客户端在"keepalive"存活时间内的总请求数来设置)    # 当送达的请求数超过该值后,该连接就会被关闭。(通过设置为5,验证确实是这样)    keepalive_requests 8192;     # http://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout    # 第一个参数设置"keep-alive客户端长连接"将在"服务器端"继续打开的超时时间(默认是75秒,建议根据具体业务要求来,但必须要求所有客户端连接的"Keep-Alive"头信息与该值设置的相同(这里是5分钟),同时与上游服务器(Tomcat)的设置是一样的)    # 可选的第二个参数设置“Keep-Alive: timeout=time”响应头字段的值    keepalive_timeout 300s 300s;     ...    include /etc/nginx/web_servers.conf;    include /etc/nginx/proxy_params;}web_servers.conf:upstream web_server {    server 127.0.0.1:8080;    # http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive    # 连接到上游服务器的最大并发空闲keepalive长连接数(默认是未设置,建议与Tomcat Connector中的maxKeepAliveRequests值一样)    # 当这个数被超过时,使用"最近最少使用算法(LUR)"来淘汰并关闭连接。    keepalive 768;}server {    listen 80;    server_name lihg.com www.lihg.com;     location / {        proxy_pass http://web_server;         ##        # 与上游服务器(Tomcat)建立keepalive长连接的配置,可参考上面的keepalive链接里的"For HTTP"部分        ##        # http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version        # 设置代理的HTTP协议版本(默认是1.0版本)        # 使用keepalive连接的话,建议使用1.1版本。        proxy_http_version 1.1;        # http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header        # 允许重新定义或追加字段到传递给代理服务器的请求头信息(默认是close)        proxy_set_header Connection "";         proxy_redirect off;    }} [参考]nginx反向代理配置keepalivekeepalive for HTTP - Module ngx_http_core_module 2. Tomcatconf/server.xml:    
[参考]The HTTP Connector - Tomcat 7 Configuration Reference 3. Client客户端HTTP "Keep-Alive"实现代码,请打开下一行的链接。KeepAliveHttpClientsTest -> httpclient-x 【结果验证】使用 "sudo netstat -antp | grep 80" 监控与Nginx相关的线程状态

 

转载于:https://www.cnblogs.com/linn/p/4738820.html

你可能感兴趣的文章
第六周
查看>>
解释一下 P/NP/NP-Complete/NP-Hard 等问题
查看>>
javafx for android or ios ?
查看>>
微软职位内部推荐-Senior Software Engineer II-Sharepoint
查看>>
sql 字符串操作
查看>>
【转】Android布局优化之ViewStub
查看>>
网络安全管理技术作业-SNMP实验报告
查看>>
根据Uri获取文件的绝对路径
查看>>
Flutter 插件开发:以微信SDK为例
查看>>
.NET[C#]中NullReferenceException(未将对象引用到实例)是什么问题?如何修复处理?...
查看>>
边缘控制平面Ambassador全解读
查看>>
Windows Phone 7 利用计时器DispatcherTimer创建时钟
查看>>
程序员最喜爱的12个Android应用开发框架二(转)
查看>>
vim学习与理解
查看>>
DIRECTSHOW在VS2005中PVOID64问题和配置问题
查看>>
MapReduce的模式,算法以及用例
查看>>
《Advanced Linux Programming》读书笔记(1)
查看>>
zabbix agent item
查看>>
一步一步学习SignalR进行实时通信_7_非代理
查看>>
AOL重组为两大业务部门 全球裁员500人
查看>>