Nginx网络连接配置项有哪些?

发布时间 - 2020-06-29 00:00:00    点击率:
Nginx网络连接配置项有:1、读取HTTP头部的超时时间;2、读取HTTP包体的超时时间;3、发送响应的超时时间;4、重置超时连接选项。

Nginx网络连接配置项有:

1、读取HTTP头部的超时时间

语法:

client_header_timeout time(默认单位:秒);

默认:

client_header_timeout 60;

配置块:http、server、location

客户端与服务器建立连接后将开始接收HTTP头部,在这个过程中,如果在一个时间间隔(超时时间)内没有读取到客户端发来的字节,则认为超时,并向客户端返回408 ("Request timed out")响应。

推荐教程:nginx快速入门教程

2、读取HTTP包体的超时时间

语法:

client_body_timeout time(默认单位:秒);

默认:

client_body_timeout 60;

配置块:http、server、location

此配置项与client_header_timeout相似,只是这个超时时间只在读取HTTP包体时才有效。

3、发送响应的超时时间

语法:

send_timeout time;

默认:

send_timeout 60;

配置块:http、server、location

这个超时时间是发送响应的超时时间,即Nginx服务器向客户端发送了数据包,但客户端一直没有去接收这个数据包。如果某个连接超过send_timeout定义的超时时间,那么Nginx将会关闭这个连接。

4、 重置超时连接选项

语法:

reset_timeout_connection on | off;

默认:

reset_timeout_connection off;

配置块:http、server、location

连接超时后将通过向客户端发送RST包来直接重置连接。这个选项打开后,Nginx会在某个连接超时后,不是使用正常情形下的四次握手关闭TCP连接,而是直接向用户发送RST重置包,不再等待用户的应答,直接释放Nginx服务器上关于这个套接字使用的所有缓存(如TCP滑动窗口)。相比正常的关闭方式,它使得服务器避免产生许多处于FIN_WAIT_1、FIN_WAIT_2、TIME_WAIT状态的TCP连接。

注意,使用RST重置包关闭连接会带来一些问题,默认情况下不会开启。

5、lingering_close

语法:

lingering_close off | on | always;

默认:

lingering_close on;

配置块:http、server、location

该配置控制Nginx关闭用户连接的方式。always表示关闭用户连接前必须无条件地处理连接上所有用户发送的数据。off表示关闭连接时完全不管连接上是否已经有准备就绪的来自用户的数据。on是中间值,一般情况下在关闭连接前都会处理连接上的用户发送的数据,除了有些情况下在业务上认定这之后的数据是不必要的。

6、lingering_time

语法:

lingering_time time;

默认:

lingering_time 30s;

配置块:http、server、location

lingering_close启用后,这个配置项对于上传大文件很有用。上文讲过,当用户请求的Content-Length大于max_client_body_size配置时,Nginx服务会立刻向用户发送413(Request entity too large)响应。但是,很多客户端可能不管413返回值,仍然持续不断地上传HTTP body,这时,经过了lingering_time设置的时间后,Nginx将不管用户是否仍在上传,都会把连接关闭掉。

7、 lingering_timeout

语法:

lingering_timeout time;

默认:

lingering_timeout 5s;

配置块:http、server、location

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

8、对某些浏览器禁用keepalive功能

语法:

keepalive_disable [ msie6 | safari | none ]...

默认:

keepalive_disable  msie6 safari

配置块:http、server、location

HTTP请求中的keepalive功能是为了让多个请求复用一个HTTP长连接,这个功能对服务器的性能提高是很有帮助的。但有些浏览器,如IE 6和Safari,它们对于使用keepalive功能的POST请求处理有功能性问题。因此,针对IE 6及其早期版本、Safari浏览器默认是禁用keepalive功能的。

8、 keepalive超时时间

语法:

keepalive_timeout time(默认单位:秒);

默认:

keepalive_timeout 75;

配置块:http、server、location

一个keepalive 连接在闲置超过一定时间后(默认的是75秒),服务器和浏览器都会去关闭这个连接。当然,keepalive_timeout配置项是用来约束Nginx服务器的,Nginx也会按照规范把这个时间传给浏览器,但每个浏览器对待keepalive的策略有可能是不同的。

10、一个keepalive长连接上允许承载的请求最大数

语法:

keepalive_requests n;

默认:

keepalive_requests 100;

配置块:http、server、location

一个keepalive连接上默认最多只能发送100个请求。

11、 tcp_nodelay

语法:

tcp_nodelay on | off;

默认:

tcp_nodelay on;

配置块:http、server、location

确定对keepalive连接是否使用TCP_NODELAY选项。

12、tcp_nopush

语法:

tcp_nopush on | off;

默认:

tcp_nopush off;

配置块:http、server、location

在打开sendfile选项时,确定是否开启FreeBSD系统上的TCP_NOPUSH或Linux系统上的TCP_CORK功能。打开tcp_nopush后,将会在发送响应时把整个响应包头放到一个TCP包中发送。


# nginx  # safari  # Length  # location  # http  # linux  # 客户端  # 用户发送  # 会在  # 上传  # 后将  # 数据包  # 的是  # 情况下  # 也会  # 在这个 


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


相关推荐: 简单实现Android文件上传  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  如何在自有机房高效搭建专业网站?  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  详解jQuery停止动画——stop()方法的使用  网站制作壁纸教程视频,电脑壁纸网站?  Python高阶函数应用_函数作为参数说明【指导】  青岛网站建设如何选择本地服务器?  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel如何使用Collections进行数据处理?(实用方法示例)  如何实现javascript表单验证_正则表达式有哪些实用技巧  如何快速搭建个人网站并优化SEO?  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  Python图片处理进阶教程_Pillow滤镜与图像增强  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  Laravel如何实现API版本控制_Laravel版本化API设计方案  JavaScript如何操作视频_媒体API怎么控制播放  如何用AI帮你把自己的生活经历写成一个有趣的故事?  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  如何快速使用云服务器搭建个人网站?  Laravel如何实现API速率限制?(Rate Limiting教程)  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  如何用西部建站助手快速创建专业网站?  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  googleplay官方入口在哪里_Google Play官方商店快速入口指南  晋江文学城电脑版官网 晋江文学城网页版直接进入  如何用5美元大硬盘VPS安全高效搭建个人网站?  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  Linux系统命令中screen命令详解  Laravel如何使用Blade模板引擎?(完整语法和示例)  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  昵图网官网入口 昵图网素材平台官方入口  js代码实现下拉菜单【推荐】  如何快速查询网址的建站时间与历史轨迹?  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  Laravel如何使用Telescope进行调试?(安装和使用教程)  佛山企业网站制作公司有哪些,沟通100网上服务官网?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  Laravel如何实现一对一模型关联?(Eloquent示例)  黑客入侵网站服务器的常见手法有哪些?