关于nginx keep-alive 参数的验证和心得

简介:

用chrome连接nginx服务器(nginx+spero),发现每次请求结果返回给浏览器后,会过一会才会运行

ngx_http_close_connection函数,可以看到nginx返回给chrome的header和结果是:

HTTP/1.1 200 OK

Server: nginx

Date: Fri, 15 Apr 2016 08:39:50 GMT

Content-Type: text/plain

Content-Length: 28

Connection: keep-alive

Keep-Alive: timeout=5


spero return ads, status 200


而通过curl访问,也是返回同样的结果,但是nginx会立刻调用ngx_http_close_connection函数,看起来keep-alive没有起作用,猜测是curl拿到结果后立马主动关闭连接。

HTTP/1.1 200 OK

Server: nginx

Date: Fri, 15 Apr 2016 08:44:11 GMT

Content-Type: text/plain

Content-Length: 28

Connection: keep-alive

Keep-Alive: timeout=5


spero return ads, status 200



那么做一个实验:设置nginx的配置文件,将keep-alive关掉,看看chrome访问时是否ngx_http_close_connection函数立刻被调用?

首先,用命令:keepalive_timeout 0 禁用长连接,则看到header中的Connection为close

HTTP/1.1 200 OK

Server: nginx

Date: Fri, 15 Apr 2016 08:50:05 GMT

Content-Type: text/plain

Content-Length: 28

Connection: close


spero return ads, status 200


同时,在nginx print的log中也可以看到,ngx_http_finalize_request函数之后,ngx_http_close_connection函数立刻就被调用了。


在spero项目中,长连接必须被关闭以支持大并发请求。


本文转自 zhegaozhouji 51CTO博客,原文链接:http://blog.51cto.com/1038741/1764232

相关文章
|
2月前
|
应用服务中间件 调度 nginx
优化nginx参数(基本通用参数)
优化nginx参数(基本通用参数)
|
2月前
|
应用服务中间件 nginx
Nginx——根据ur中的参数进行转发
Nginx——根据ur中的参数进行转发
24 0
|
2月前
|
网络协议 应用服务中间件 测试技术
nginx参数调优能提升多少性能
nginx参数调优能提升多少性能
|
5月前
|
应用服务中间件 nginx
Nginx的referer参数的用法和原理
总结:referer参数可以用于Nginx配置,以限制或允许特定来源网站的访问,提高安全性或控制流量。它通过valid_referers指令来定义合法的Referer来源,并根据配置对请求进行处理。但需要注意,Referer字段内容可以被伪造,因此不应作为唯一的安全措施。
557 0
|
5月前
|
应用服务中间件 nginx
4.5.1 Nginx反向代理与系统参数配置conf原理
4.5.1 Nginx反向代理与系统参数配置conf原理
|
5月前
|
存储 负载均衡 网络协议
Nginx反向代理与系统参数配置conf原理
Nginx反向代理与系统参数配置conf原理
84 0
|
12月前
|
移动开发 网络协议 应用服务中间件
70分布式电商项目 - nginx编译参数详解
70分布式电商项目 - nginx编译参数详解
41 0
|
网络协议 安全 应用服务中间件
Nginx 实战系列之二:Nginx 优化中在 Nginx 侧 和 Linux 系统侧必须要调整优化的参数详细和最佳推荐配置
Nginx 实战系列之二:Nginx 优化中在 Nginx 侧 和 Linux 系统侧必须要调整优化的参数详细和最佳推荐配置
|
缓存 负载均衡 算法
Nginx配置反向代理及基本参数解释说明
Nginx配置反向代理及基本参数解释说明
1185 0
|
NoSQL 应用服务中间件 Redis
【Nginx】第七章 Nginx原理与优化参数配置
【Nginx】第七章 Nginx原理与优化参数配置
126 0