Nginx企业级负载均衡:技术详解系列(17)—— 长连接优化策略与下载服务器高效搭建

你好,我是赵兴晨,97年文科程序员。

今天咱们来聊聊Nginx的两个知识点:Nginx的长连接优化、如何将Nginx配置成下载服务器。

长连接配置详解
在Nginx的配置中,长连接是一个重要的性能优化手段。它允许一个TCP连接上发送多个请求和响应,从而减少连接建立和关闭的开销。以下呢,是一些关键的长连接配置参数:
1.keepalive_timeout
设置保持连接的超时时长。如设置为0,则禁止长连接,这是默认行为。默认值是75秒,通常建议在HTTP配置块中配置为站点的全局设置。

2.keepalive_requests
定义在一次长连接上允许请求的资源的最大数量,默认值为100次,但建议根据实际情况适当调大,例如设置为500次。

示例配置

# 长连接在65秒或3次请求后自动断开,客户端会话保持时间为60秒。
keepalive_time 3;
keepalive_timeout 65 60;

浏览器与服务器的交互
当开启长连接时,服务器返回给客户端的会话保持时间设置为60秒,如以下响应头所示

Keep-Alive: timeout=60

如果设置为0,表示关闭会话保持功能,浏览器收到的响应头将显示:

Connection: close

配置Nginx作为下载服务器
在这里插入图片描述

在下载Nginx或其他软件时,你是否曾被那些简介而直观的下载界面所吸引?是否好奇这些界面是如何构建的?下面咱们聊聊如何将Nginx配置成一个高效的下载服务器。

Nginx的ngx_http_autoindex_module模块能够处理以斜杠/结尾的请求,并生成目录列表,非常适合用作下载服务。以下是如何配置Nginx实现这一功能,以及一些关键指令的说明。
官方文档链接 https://nginx.org/en/docs/http/ngx_http_autoindex_module.html
相关指令说明
autoindex on | off
开启或关闭自动文件索引功能,默认为off

autoindex_exeact_size on | off
当设置为on时,在目录列表中显示文件的确切大小(单位为字节)。设置为off时,显示大约大小(单位为KB、MB),默认为on

autoindex_format html | xml | json | josnp
设置索引页面的文件风格,默认为html

limit_rate rate;
限制响应客户端的传输速率(除GET和HEAD方法外的所有方法),单位为B/s(字节/秒)。默认值为0,表示无限制。

示例
1.创建下载目录

mkdir -p /data/nginx/html/pc/download

2.编辑Nginx配置文件

location /download {
    autoindex on; # 开启自动索引功能
    autoindex_exact_size on; # 计算文件确切大小(单位bytes)
    autoindex_localtime on; # 显示本机时间而非GMT时间
    limit_rate 1024k; # 限速为1024KB/s
    root /data/nginx/html/pc; # 设置下载文件的根目录
}

3.见文件复制到下载目录

cp /root/anaconda-ks.cfg /data/nginx/html/pc/download/

4.重启Nginx并访问测试下载页面

systemctl restart nginx

在这里插入图片描述

OK,今天的分享就到这。希望能对你有些帮助和启发。如果你有任何疑问或想要进一步探讨的话题,随时在评论区留言或联系我。

感谢你的阅读,期待与你在下一篇文章中再次相遇。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/672333.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

centos7下安装MySQL,Oracle数据库

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 操作系统版本为CentOS 7 使⽤ MySQ…

“人工智能AI+” 应用场景盘点

在这个科技与梦想交相辉映的时代,人工智能已不再停留于遥不可及的概念构想,而是化身为一股汹涌的创新洪流,深刻塑造着社会的每一个角落。从文化艺术的智慧火花到生命科学的精密探索,从工业制造的革新升级到日常生活的细致入微&…

解决sd-webui中rembg插件使用报错问题

stable-diffusion-webui-rembg是我非常喜欢的sd-webui插件,PS抠图手残党的福音,一键抠图太爽啦。对于主体明确线条简单的图片(如汽车、服饰简洁的人像等)效果相当好;即便对于毛茸茸的对象(如动物&#xff0…

轻松上手MYSQL:优化MySQL慢查询,让数据库起飞

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL应用》 💪🏻 制定明确可量化的目标,坚持默默的做事。 ✨欢迎加入探索MYSQL慢查询之旅✨ 👋 大家好!我是你们的…

牛客网刷题 | BC112 空心三角形图案

目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 描述 KiKi学习了循环&am…

961题库 北航计算机 操作系统 附答案 选择题形式

有题目和答案,没有解析,不懂的题问大模型即可,无偿分享。 第1组 习题 计算机系统的组成包括( ) A、程序和数据 B、处理器和内存 C、计算机硬件和计算机软件 D、处理器、存储器和外围设备 财务软件是一种&#xff…

从 @MapperScan 看 Spring 和 MyBatis 的整合

在 Spring Boot 中使用 Mybatis 时,会经常使用到一个注解 MapperScan,它可以指定对哪些包进行扫描(basePackages),将哪些类作为 Mapper 类(basePackageClasses),多数据源下的一些设置…

【JavaScript详解】Day01

JavaScript 基础 - 第1天 了解变量、数据类型、运算符等基础概念,能够实现数据类型的转换,结合四则运算体会如何编程。 体会现实世界中的事物与计算机的关系理解什么是数据并知道数据的分类理解变量存储数据的“容器”掌握常见运算符的使用,了…

win+mac通用的SpringBoot+H2数据库集成过程。

有小部分大学的小部分老师多毛病,喜欢用些晦涩难搞的数据库来折腾学生,我不理解,但大受震撼。按我的理解,这种数据库看着好像本地快速测试代码很舒服,但依赖和数据库限制的很死板,对不上就是用不了&#xf…

对HTTP和HTTPS的介绍

HTTP HTTP 是什么? HTTP (全称为 “超⽂本传输协议”) 是⼀种应⽤⾮常⼴泛的 应用层协议. 所谓 “超⽂本” 的含义, 就是传输的内容不仅仅是⽂本(⽐如 html, css 这个就是⽂本), 还可以是⼀些其他的资源, ⽐如图⽚, 视频, ⾳频等⼆进制的数据 HTTP 往往是基于传输层…

JavaScript数组应用

检测数据类型 1.typeof()可以检测基本数据类型,但是在检测null时会返回object。另外它不能检测负责的数据类型,如正则表达式对象 2.constructor可以检测绝大部分数据的类型,但是不能检测null和underfined的数据类型 3.toString()方法&#x…

C++的List

List的使用 构造 与vector的区别 与vector的区别在于不支持 [ ] 由于链表的物理结构不连续,所以只能用迭代器访问 vector可以排序,list不能排序(因为快排的底层需要随机迭代器,而链表是双向迭代器) (算法库里的排序不支持)(需要单独的排序) list存在vector不支持的功能 链…

国产操作系统上Vim的详解01--vim基础篇 _ 统信 _ 麒麟 _ 中科方德

原文链接:国产操作系统上Vim的详解01–vim基础篇 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天给大家带来一篇在国产操作系统上使用Vim的详解文章。Vim是一款功能强大且高度可定制的文本编辑器,广泛应用于编程和日常文本编辑中。…

SELF-RAG: Learning to Retrieve, Generate, and Critique Through Self-reflection

更多文章,请关注微信公众号:NLP分享汇 原文链接:ICLR2024:能够自我反思的SELF-RAG 下面介绍的这篇论文是最近被ICLR 2024 accepted oral,作者来自University of Washington & Allen Institute for AI & IBM R…

Z字形变换 ---- 模拟

题目链接 题目: 分析: 题意如图所示:如果我们按照题意, 真的实现一个矩阵, 这样做的时间和空间复杂度很高, 所以我们可以试试看找规律, 优化一下我们观察他们的下标: 如果找到下标的规律, 那么我们就不用创建矩阵, 就能找到最终结果的下一个字符是什么特殊情况, 当numRows 1…

C++17之std::void_t

目录 1.std::void_t 的原理 2.std::void_t 的应用 2.1.判断成员存在性 2.1.1.判断嵌套类型定义 2.1.2 判断成员是否存在 2.2 判断表达式是否合法 2.2.1 判断是否支持前置运算符 2.2.3 判断两个类型是否可做加法运算 3.std::void_t 与 std::enable_if 1.std::void_t 的…

算法-堆结构和堆排序

文章目录 本节大纲1. 堆结构2. 堆排序本节的代码实现合集 本节大纲 1. 堆结构 堆结构是为集合类里面的优先级队列来服务的 优先级队列其实就是顺序存储的二叉树结构, 我们的底层的源码里面是没有链式存储的二叉树的,二叉树的实现的细节是通过我们的数组来模拟实现的 底层的实现…

【计算机毕设】基于SpringBoot的教学资源库设计与实现 - 源码免费(私信领取)

免费领取源码 | 项目完整可运行 | v:chengn7890 诚招源码校园代理! 1. 研究目的 本项目旨在设计并实现一个基于SpringBoot的教学资源库系统,以便教师和学生能够方便地存储、分享和查找各种教学资源。具体目标包括&…

分治策略的实现

目录 前言 分治策略的应用 最大子数组问题 矩阵乘法问题 求解递归式的三种方法 代入法求递归式 用递归树求递归式 主方法求递归式 前言 分治三个步骤: 分解:分解原问题为子问题,这些子问题为原问题的较小规模的问题。 解决&#xf…

Redis——基本命令

概念: Redis(REmote Dlctionary Server) 是用 C语言开发的一个开源的高性能键值对(key-value) 数据库 特征: 1. 数据间没有必然的关联关系 2. 内部采用单线程机制进行工作 3. 高性能 4. 多数据类型支持 字符串类型 string 列表类型 …