开发者社区> 小柒2012> 正文

Nginx学习之合并请求连接加速网站访问

简介:
+关注继续查看

作为这个世界上最好的web服务器之一,Nginx的优势不明而喻。下面来讲讲,Nginx是如何合并请求连接的。

小知识

当我们在浏览网页的时候,对浏览速度有一个重要的影响因素,就是浏览器的并发数量。并发数量简单通俗的讲就是,当浏览器网页的时候同时工作的进行数量。

当然浏览器的并发请求数目限制是针对同一域名的,同一时间针对同一域名下的请求有一定数量限制,超过限制数目的请求会被阻塞。

首先我们看下各个浏览器的并发连接数:

2028556010

罗列一下浏览器这么决定可能有什么考虑

  • 由于TCP 协议的限制,PC 端只有65536个端口可用以向外部发出连接,而操作系统对半开连接数也有限制以保护操作系统的 TCPIP 协议栈资源不被迅速耗尽,因此浏览器不好发出太多的 TCP 连接,而是采取用完了之后再重复利用 TCP 连接或者干脆重新建立 TCP 连接的方法。
  • 如果采用阻塞的套接字模型来建立连接,同时发出多个连接会导致浏览器不得不多开几个线程,而线程有时候算不得是轻量级资源,毕竟做一次上下文切换开销不小。
  • 这是浏览器作为一个有良知的客户端在保护服务器。就像以太网的冲突检测机制,客户端在使用公共资源的时候必须要自行决定一个等待期。当超过2个客户端要使用公共资源时,强势的那个邪恶的客户端可能会导致弱势的客户端完全无法访问公共资源。从前迅雷被喷就是因为它不是一个有良知的客户端,它作为 HTTP 协议客户端没有考虑到服务器的压力,作为 BT 客户端没有考虑到自己回馈上传量的义务。

淘宝tengine

我们在访问有些网站的时候,会看到代码中的部分js和css文件是通过一次请求获取的,上面的小知识知道浏览器请求的并发数量是有限制的,但是如果把多条记录合并一次请求就可能会加快响应速度。

淘宝使用的tengine是基于nginx的web服务器,从11年底开源。开源模块nginx-http-concat,可以合并多个文件在一个响应报文中。

安装

初次安装第三方模块nginx-http-concat

wget http://tengine.taobao.org/download/tengine-2.2.0.tar.gz
wget https://github.com/alibaba/nginx-http-concat/archive/master.zip -O nginx-http-concat-master.zip
unzip nginx-http-concat-master.zip
tar -xzvf tengine-2.2.0.tar.gz
cd  tengine-2.2.0

配置编译安装

 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=../nginx-http-concat-master
 make
 make install

如果已经安装过Nginx,只是配置第三方插件。Nginx -V,检查一下Nginx的版本,如果没有,下载对应的版本。

执行一下代码即可。

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=../nginx-http-concat-master
make

编译成功以后

#复制之前请备份nginx执行文件
cp /objs/nginx  /usr/local/nginx/sbin/nginx

杀掉Nginx,重启即可。

配置

在location段增加如下配置:

location /static/css/ {
   concat on;
   concat_max_files 20;
   concat_unique off;
   concat_types text/css application/javascript;
}

合并方式

http://static.52itstyle.com/static/css/??index.css,common.css?v=20171111

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
OpenSupports 在 NGINX 下的配置
OpenSupports 在 NGINX 下的配置
19 0
【宝塔部署SpringBoot前后端不分离项目】含域名访问部署、数据库、反向代理、Nginx等配置
【宝塔部署SpringBoot前后端不分离项目】含域名访问部署、数据库、反向代理、Nginx等配置
96 0
谷粒学苑项目实战(十):使用Nginx配置请求转发
之前前端的请求端口为8001,可是现在我们又多了8002端口,后面还会有8003、8004……,如何让前端能够请求这么多的端口呢? 也许我们可以写多个BASE_API,分别对应多个端口,可是在vue框架中许多地方都要用到BASE_API,这样修改的地方太多。 这就需要用到Nginx的请求转发了。
36 0
Nginx:配置HTTPS网址加上绿锁头
Nginx:配置HTTPS网址加上绿锁头
46 0
Linux系统中安装Nginx并完成相关配置
Linux系统中安装Nginx并完成相关配置
41 0
【Nginx】Windows平台下配置Nginx服务实现负载均衡
系统环境:win10 测试用的开发环境和服务类型:VS2022 + DotNet 6 + WebApi
45 0
常见的Nginx配置错误原理分析及其危害
常见的Nginx配置错误原理分析及其危害
55 0
nginx负载均衡配置(简单快速)
还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群
43 0
Nginx 负载均衡配置(实战教程)
还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群
55 0
配置Nginx虚拟主机(二)
⭐本文介绍⭐ 在企业信息化应用环境中,安全性不仅取决于硬件防护设备,系统加固、访问控制等基本措施,而且如何减少故障中断时间,提高存储及北方的完善性也是确保企业信息安全的重要措施。本文将进一步学习服务器缓存加速、高可用/负载均衡群集、服务器集中监控等高级安全应用。后续课程将采用最小化安装的CentOS7.3系统,安装系统时勾选"开发工具"选项,以此为基础搭建实现环境。
114 0
+关注
小柒2012
一个程序员,欢迎骚扰!!!
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
《Nginx 代理系统常用手册》
立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手
立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册
立即下载