专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

40个Nginx常问面试题

  Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。
  那么关于Nginx的核心技术点有哪些呢?
  什么是Nginx?
  Nginx是一个轻量级高性能的反向代理Web服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议。他实现非常高效的反向代理、负载平衡,他可以处理23万并发连接数,官方监测能支持5万并发,现在中国使用nginx网站用户有很多,例如:新浪、网易、腾讯等。
  Nginx有哪些优点?
  跨平台、配置简单。
  非阻塞、高并发连接:处理23万并发连接数,官方监测能支持5万并发。
  内存消耗
  小:开启10个Nginx才占150M内存。
  成本低廉,且开源。
  稳定性高,宕机的概率非常小。
  内置的健康检查功能:如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器了。重新将请求提交到其他的节点上
  Nginx应用场景?
  http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
  虚拟主机。可以实现在一台服务器虚拟出多个网站,例如个人网站使用的虚拟机。
  反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会应为某台服务器负载高宕机而某台服务器闲置的情况。
  nginz中也可以配置安全管理、比如可以使用Nginx搭建API接口网关,对每个接口服务进行拦截。
  Nginx怎么处理请求的?server{第一个Server区块开始,表示一个独立的虚拟主机站点
  listen80;提供服务的端口,默认80
  servernamelocalhost;提供服务的域名主机名
  location{第一个location区块开始
  roothtml;站点的根目录,相当于Nginx的安装目录
  indexindex。htmlindex。html;默认的首页文件,多个用空格分开
  }第一个location区块结果
  首先,Nginx在启动时,会解析配置文件,得到需要监听的端口与IP地址,然后在Nginx的Master进程里面先初始化好这个监控的Socket(创建Socket,设置addr、reuse等选项,绑定到指定的ip地址端口,再listen监听)。
  然后,再fork(一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程)出多个子进程出来。
  之后,子进程会竞争accept新的连接。此时,客户端就可以向nginx发起连接了。当客户端与nginx进行三次握手,与nginx建立好一个连接后。此时,某一个子进程会accept成功,得到这个建立好的连接的Socket,然后创建nginx对连接的封装,即ngxconnectiont结构体。
  接着,设置读写事件处理函数,并添加读写事件来与客户端进行数据的交换。
  最后,Nginx或客户端来主动关掉连接,到此,一个连接就寿终正寝了。
  Nginx是如何实现高并发的?
  如果一个server采用一个进程(或者线程)负责一个request的方式,那么进程数就是并发数。那么显而易见的,就是会有很多进程在等待中。等什么?最多的应该是等待网络传输。
  而Nginx的异步非阻塞工作方式正是利用了这点等待的时间。在需要等待的时候,这些进程就空闲出来待命了。因此表现为少数几个进程就解决了大量的并发问题。
  Nginx是如何利用的呢,简单来说:同样的4个进程,如果采用一个进程负责一个request的方式,那么,同时进来4个request之后,每个进程就负责其中一个,直至会话关闭。期间,如果有第5个request进来了。就无法及时反应了,因为4个进程都没干完活呢,因此,一般有个调度进程,每当新进来了一个request,就新开个进程来处理。
  回想下,BIO是不是存在酱紫的问题?
  Nginx不这样,每进来一个request,会有一个worker进程去处理。但不是全程的处理,处理到什么程度呢?处理到可能发生阻塞的地方,比如向上游(后端)服务器转发request,并等待请求返回。那么,这个处理的worker不会这么傻等着,他会在发送完请求后,注册一个事件:如果upstream返回了,告诉我一声,我再接着干。于是他就休息去了。此时,如果再有request进来,他就可以很快再按这种方式处理。而一旦上游服务器返回了,就会触发这个事件,worker才会来接手,这个request才会接着往下走。
  这就是为什么说,Nginx基于事件模型。
  由于webserver的工作性质决定了每个request的大部份生命都是在网络传输中,实际上花费在server机器上的时间片不多。这是几个进程就解决高并发的秘密所在。即:
  webserver刚好属于网络IO密集型应用,不算是计算密集型。
  异步,非阻塞,使用epoll,和大量细节处的优化。也正是Nginx之所以然的技术基石。
  什么是正向代理?
  一个位于客户端和原始服务器(originserver)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
  客户端才能使用正向代理。正向代理总结就一句话:代理端代理的是客户端。例如说:我们使用的OpenVPN等等。
  什么是反向代理?
  反向代理(ReverseProxy)方式,是指以代理服务器来接受Internet上的连接请求,然后将请求,发给内部网络上的服务器并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
  反向代理总结就一句话:代理端代理的是服务端。
  反向代理服务器的优点是什么?
  反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和web服务器之间的中间层。这对于安全方面来说是很好的,特别是当您使用web托管服务时。
  Nginx目录结构有哪些?treeusrlocalnginx
  usrlocalnginx
  clientbodytemp
  confNginx所有配置文件的目录
  fastcgi。conffastcgi相关参数的配置文件
  fastcgi。conf。defaultfastcgi。conf的原始备份文件
  fastcgiparamsfastcgi的参数文件
  fastcgiparams。default
  koiutf
  koiwin
  mime。types媒体类型
  mime。types。default
  nginx。confNginx主配置文件
  nginx。conf。default
  scgiparamsscgi相关参数文件
  scgiparams。default
  uwsgiparamsuwsgi相关参数文件
  uwsgiparams。default
  winutf
  fastcgitempfastcgi临时数据目录
  htmlNginx默认站点目录
  50x。html错误页面优雅替代显示文件,例如当出现502错误时会调用此页面
  index。html默认的首页文件
  logsNginx日志目录
  access。log访问日志文件
  error。log错误日志文件
  nginx。pidpid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
  proxytemp临时目录
  sbinNginx命令目录
  nginxNginx的启动命令
  scgitemp临时目录
  uwsgitemp临时目录
  Nginx配置文件nginx。conf有哪些属性模块?workerprocesses1;worker进程的数量
  events{事件区块开始
  workerconnections1024;每个worker进程支持的最大连接数
  }事件区块结束
  http{HTTP区块开始
  includemime。types;Nginx支持的媒体类型库文件
  defaulttypeapplicationoctetstream;默认的媒体类型
  sendfileon;开启高效传输模式
  keepalivetimeout65;连接超时
  server{第一个Server区块开始,表示一个独立的虚拟主机站点
  listen80;提供服务的端口,默认80
  servernamelocalhost;提供服务的域名主机名
  location{第一个location区块开始
  roothtml;站点的根目录,相当于Nginx的安装目录
  indexindex。htmlindex。htm;默认的首页文件,多个用空格分开
  }第一个location区块结果
  errorpage50050250350450x。html;出现对应的http状态码时,使用50x。html回应客户
  location50x。html{location区块开始,访问50x。html
  roothtml;指定对应的站点目录为html
  }
  }
  。。。。。。
  cookie和session区别?共同:
  存放用户信息。存放的形式:keyvalue格式变量和变量内容键值对。
  区别:
  cookie
  存放在客户端浏览器
  每个域名对应一个cookie,不能跨跃域名访问其他cookie
  用户可以查看或修改cookie
  http响应报文里面给你浏览器设置
  钥匙(用于打开浏览器上锁头)
  session:
  存放在服务器(文件,数据库,redis)
  存放敏感信息
  锁头
  为什么Nginx不使用多线程?
  Apache:创建多个进程或线程,而每个进程或线程都会为其分配cpu和内存(线程要比进程小的多,所以worker支持比perfork高的并发),并发过大会榨干服务器资源。
  Nginx:采用单线程来异步非阻塞处理请求(管理员可以配置Nginx主进程的工作进程的数量)(epoll),不会为每个请求分配cpu和内存资源,节省了大量资源,同时也减少了大量的CPU的上下文切换。所以才使得Nginx支持更高的并发。
  nginx和apache的区别
  轻量级,同样起web服务,比apache占用更少的内存和资源。
  抗并发,nginx处理请求是异步非阻塞的,而apache则是阻塞性的,在高并发下nginx能保持低资源,低消耗高性能。
  高度模块化的设计,编写模块相对简单。
  最核心的区别在于apache是同步多进程模型,一个连接对应一个进程,nginx是异步的,多个连接可以对应一个进程。
  什么是动态资源、静态资源分离?
  动态资源、静态资源分离,是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。
  动态资源、静态资源分离简单的概括是:动态文件与静态文件的分离。
  为什么要做动、静分离?
  在我们的软件开发中,有些请求是需要后台处理的(如:。jsp,。do等等),有些请求是不需要经过后台处理的(如:css、html、jpg、js等等文件),这些不需要经过后台处理的文件称为静态文件,否则动态文件。
  因此我们后台处理忽略静态文件。这会有人又说那我后台忽略静态文件不就完了吗?当然这是可以的,但是这样后台的请求次数就明显增多了。在我们对资源的响应速度有要求的时候,我们应该使用这种动静分离的策略去解决动、静分离将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问
  这里我们将静态资源放到Nginx中,动态资源转发到Tomcat服务器中去。
  当然,因为现在七牛、阿里云等CDN服务已经很成熟,主流的做法,是把静态资源缓存到CDN服务中,从而提升访问速度。
  相比本地的Nginx来说,CDN服务器由于在国内有更多的节点,可以实现用户的就近访问。并且,CDN服务可以提供更大的带宽,不像我们自己的应用服务,提供的带宽是有限的。
  什么叫CDN服务?
  CDN,即内容分发网络。
  其目的是,通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使用户可就近取得所需的内容,提高用户访问网站的速度。
  一般来说,因为现在CDN服务比较大众,所以基本所有公司都会使用CDN服务。
  Nginx怎么做的动静分离?
  只需要指定路径对应的目录。location可以使用正则表达式匹配。并指定对应的硬盘中的目录。如下:(操作都是在Linux上)locationimage{
  rootusrlocalstatic;
  autoindexon;
  }
  步骤:
  创建目录
  mkdirusrlocalstaticimage
  进入目录
  cdusrlocalstaticimage
  上传照片
  photo。jpg
  重启nginx
  sudonginxsreload
  打开浏览器输入servernameimage1。jpg就可以访问该静态图片了
  Nginx负载均衡的算法怎么实现的?策略有哪些?
  为了避免服务器崩溃,大家会通过负载均衡的方式来分担服务器压力。将对台服务器组成一个集群,当用户访问时,先访问到一个转发服务器,再由转发服务器将访问分发到压力更小的服务器。
  Nginx负载均衡实现的策略有以下五种:
  1。轮询(默认)
  每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某个服务器宕机,能自动剔除故障系统。upstreambackserver{
  server192。168。0。12;
  server192。168。0。13;
  }
  2。权重weight
  weight的值越大,分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。其次是为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。权重越高,在被访问的概率越大,如上例,分别是20,80。
  upstreambackserver{
  server192。168。0。12weight2;
  server192。168。0。13weight8;
  }
  3。iphash(IP绑定)
  每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题upstreambackserver{
  iphash;
  server192。168。0。12:88;
  server192。168。0。13:80;
  }
  4。fair(第三方插件)
  必须安装upstreamfair模块。
  对比weight、iphash更加智能的负载均衡算法,fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,响应时间短的优先分配。哪个服务器的响应速度快,就将请求分配到那个服务器上。
  upstreambackserver{
  serverserver1;
  serverserver2;
  fair;
  }
  5。urlhash(第三方插件)
  必须安装Nginx的hash软件包
  按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率。upstreambackserver{
  serversquid1:3128;
  serversquid2:3128;
  hashrequesturi;
  hashmethodcrc32;
  }
  如何用Nginx解决前端跨域问题?
  使用Nginx转发请求。把跨域的接口写成调本域的接口,然后将这些接口转发到真正的请求地址。
  Nginx虚拟主机怎么配置?
  1、基于域名的虚拟主机,通过域名来区分虚拟主机应用:外部网站
  2、基于端口的虚拟主机,通过端口来区分虚拟主机应用:公司内部网站,外部网站的管理后台
  3、基于ip的虚拟主机。
  基于虚拟主机配置域名
  需要建立datawwwdatabbs目录,windows本地hosts添加虚拟机ip地址对应的域名解析;对应域名网站目录下新增index。html文件;当客户端访问www。lijie。com,监听端口号为80,直接跳转到datawww目录下文件
  server{
  listen80;
  servernamewww。lijie。com;
  location{
  rootdatawww;
  indexindex。htmlindex。htm;
  }
  }
  当客户端访问www。lijie。com,监听端口号为80,直接跳转到databbs目录下文件
  server{
  listen80;
  servernamebbs。lijie。com;
  location{
  rootdatabbs;
  indexindex。htmlindex。htm;
  }
  }
  基于端口的虚拟主机
  使用端口来区分,浏览器使用域名或ip地址:端口号访问当客户端访问www。lijie。com,监听端口号为8080,直接跳转到datawww目录下文件
  server{
  listen8080;
  servername8080。lijie。com;
  location{
  rootdatawww;
  indexindex。htmlindex。htm;
  }
  }
  当客户端访问www。lijie。com,监听端口号为80直接跳转到真实ip服务器地址127。0。0。1:8080
  server{
  listen80;
  servernamewww。lijie。com;
  location{
  proxypasshttp:127。0。0。1:8080;
  indexindex。htmlindex。htm;
  }
  }
  location的作用是什么?
  location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。
  location的语法能说出来吗?
  注意:代表自己输入的英文字母
  Location正则案例优先级1,精确匹配,根路径
  location{
  return400;
  }
  优先级2,以某个字符串开头,以av开头的,优先匹配这里,区分大小写
  locationav{
  rootdataav;
  }
  优先级3,区分大小写的正则匹配,匹配media路径
  locationmedia{
  aliasdatastatic;
  }
  优先级4,不区分大小写的正则匹配,所有的。jpggifpng都走这里
  location。。(jpggifpngjscss){
  rootdataav;
  }
  优先7,通用匹配
  location{
  return403;
  }
  限流怎么做的?
  Nginx限流就是限制用户请求速度,防止服务器受不了
  限流有3种
  正常限制访问频率(正常流量)
  突发限制访问频率(突发流量)
  限制并发连接数
  Nginx的限流都是基于漏桶流算法
  实现三种限流算法
  1、正常限制访问频率(正常流量):
  限制一个用户发送的请求,我Nginx多久接收一个请求。
  Nginx中使用ngxhttplimitreqmodule模块来限制的访问频率,限制的原理实质是基于漏桶算法原理来实现的。在nginx。conf配置文件中可以使用limitreqzone命令及limitreq命令限制单个IP的请求处理频率。定义限流维度,一个用户一分钟一个请求进来,多余的全部漏掉
  limitreqzonebinaryremoteaddrzoneone:10mrate1rm;
  绑定限流维度
  server{
  locationseckill。html{
  limitreqzonezone;
  proxypasshttp:ljseckill;
  }
  }
  1rs代表1秒一个请求,1rm一分钟接收一个请求,如果Nginx这时还有别人的请求没有处理完,Nginx就会拒绝处理该用户请求。
  2、突发限制访问频率(突发流量):
  限制一个用户发送的请求,我Nginx多久接收一个。
  上面的配置一定程度可以限制访问频率,但是也存在着一个问题:如果突发流量超出请求被拒绝处理,无法处理活动时候的突发流量,这时候应该如何进一步处理呢?
  Nginx提供burst参数结合nodelay参数可以解决流量突发的问题,可以设置能处理的超过设置的请求数外能额外处理的请求数。我们可以将之前的例子添加burst参数以及nodelay参数:定义限流维度,一个用户一分钟一个请求进来,多余的全部漏掉
  limitreqzonebinaryremoteaddrzoneone:10mrate1rm;
  绑定限流维度
  server{
  locationseckill。html{
  limitreqzonezoneburst5nodelay;
  proxypasshttp:ljseckill;
  }
  }
  为什么就多了一个burst5nodelay;呢,多了这个可以代表Nginx对于一个用户的请求会立即处理前五个,多余的就慢慢来落,没有其他用户的请求我就处理你的,有其他的请求的话我Nginx就漏掉不接受你的请求
  3、限制并发连接数
  Nginx中的ngxhttplimitconnmodule模块提供了限制并发连接数的功能,可以使用limitconnzone指令以及limitconn执行进行配置。接下来我们可以通过一个简单的例子来看下:http{
  limitconnzonebinaryremoteaddrzonemyip:10m;
  limitconnzoneservernamezonemyServerName:10m;
  }
  server{
  location{
  limitconnmyip10;
  limitconnmyServerName100;
  rewritehttp:www。lijie。netpermanent;
  }
  }
  上面配置了单个IP同时并发连接数最多只能10个连接,并且设置了整个虚拟服务器同时最大并发数最多只能100个链接。当然,只有当请求的header被服务器处理后,虚拟服务器的连接数才会计数。刚才有提到过Nginx是基于漏桶算法原理实现的,实际上限流一般都是基于漏桶算法和令牌桶算法实现的。
  漏桶流算法和令牌桶算法知道?漏桶算法
  漏桶算法思路很简单,我们把水比作是请求,漏桶比作是系统处理能力极限,水先进入到漏桶里,漏桶里的水按一定速率流出,当流出的速率小于流入的速率时,由于漏桶容量有限,后续进入的水直接溢出(拒绝请求),以此实现限流。
  令牌桶算法
  令牌桶算法的原理也比较简单,我们可以理解成医院的挂号看病,只有拿到号以后才可以进行诊病。
  系统会维护一个令牌(token)桶,以一个恒定的速度往桶里放入令牌(token),这时如果有请求进来想要被处理,则需要先从桶里获取一个令牌(token),当桶里没有令牌(token)可取时,则该请求将被拒绝服务。令牌桶算法通过控制桶的容量、发放令牌的速率,来达到对请求的限制。
  Nginx配置高可用性怎么配置?
  当上游服务器(真实访问服务器),一旦出现故障或者是没有及时相应的话,应该直接轮训到下一台服务器,保证服务器的高可用
  Nginx配置代码:server{
  listen80;
  servernamewww。lijie。com;
  location{
  指定上游服务器负载均衡服务器
  proxypasshttp:backServer;
  nginx与上游服务器(真实访问的服务器)超时时间后端服务器连接的超时时间发起握手等候响应超时时间
  proxyconnecttimeout1s;
  nginx发送给上游服务器(真实访问的服务器)超时时间
  proxysendtimeout1s;
  nginx接受上游服务器(真实访问的服务器)超时时间
  proxyreadtimeout1s;
  indexindex。htmlindex。htm;
  }
  }
  Nginx怎么判断别IP不可访问?如果访问的ip地址为192。168。9。115,则返回403
  if(remoteaddr192。168。9。115){
  return403;
  }
  在nginx中,如何使用未定义的服务器名称来阻止处理请求?
  只需将请求删除的服务器就可以定义为:
  服务器名被保留一个空字符串,他在没有主机头字段的情况下匹配请求,而一个特殊的nginx的非标准代码被返回,从而终止连接。
  怎么限制浏览器访问?不允许谷歌浏览器访问如果是谷歌浏览器返回500
  if(httpuseragentChrome){
  return500;
  }
  Rewrite全局变量是什么?
  remoteaddr获取客户端ip
  binaryremoteaddr客户端ip(二进制)
  remoteport客户端port,如:50472
  remoteuser已经经过AuthBasicModule验证的用户名
  host请求主机头字段,否则为服务器名称,如:blog。sakmon。com
  request用户请求信息,如:GET?a1b2HTTP1。1
  requestfilename当前请求的文件的路径名,由root或alias和URIrequest组合而成,如:201381。html
  status请求的响应状态码,如:200
  bodybytessent响应时送出的body字节数数量。即使连接中断,这个数据也是精确的,如:40
  contentlength等于请求行的ContentLength的值
  contenttype等于请求行的ContentType的值
  httpreferer引用地址
  httpuseragent客户端agent信息,如:Mozilla5。0(WindowsNT5。1)AppleWebKit537。36(KHTML,likeGecko)Chrome29。0。1547。76Safari537。36
  args与querystring相同等于当中URL的参数(GET),如a1b2
  documenturi与uri相同这个变量指当前的请求URI,不包括任何参数(见args)如:201381。html
  documentroot针对当前请求的根路径设置值
  hostname如:centos53。localdomain
  httpcookie客户端cookie信息
  cookieCOOKIEcookieCOOKIE变量的值
  isargs如果有args参数,这个变量等于?,否则等于,空值,如?
  limitrate这个变量可以限制连接速率,0表示不限速
  querystring与args相同等于当中URL的参数(GET),如a1b2
  requestbody记录POST过来的数据信息
  requestbodyfile客户端请求主体信息的临时文件名
  requestmethod客户端请求的动作,通常为GET或POST,如:GET
  requesturi包含请求参数的原始URI,不包含主机名,如:201381。html?a1b2
  schemeHTTP方法(如http,https),如:http
  uri这个变量指当前的请求URI,不包括任何参数(见args)如:201381。html
  requestcompletion如果请求结束,设置为OK。当请求未结束或如果该请求不是请求链串的最后一个时,为空(Empty),如:OK
  serverprotocol请求使用的协议,通常是HTTP1。0或HTTP1。1,如:HTTP1。1
  serveraddr服务器IP地址,在完成一次系统调用后可以确定这个值
  servername服务器名称,如:blog。sakmon。com
  serverport请求到达服务器的端口号,如:80
  Nginx如何实现后端服务的健康检查?
  方式一,利用nginx自带模块ngxhttpproxymodule和ngxhttpupstreammodule对后端节点做健康检查。
  方式二(推荐),利用nginxupstreamcheckmodule模块对后端节点做健康检查。
  Nginx如何开启压缩?
  开启nginxgzip压缩后,网页、css、js等静态资源的大小会大大的减少,从而可以节约大量的带宽,提高传输效率,给用户快的体验。虽然会消耗cpu资源,但是为了给用户更好的体验是值得的。
  开启的配置如下:
  将以上配置放到nginx。conf的http{}节点中。http{
  开启gzip
  gzipon;
  启用gzip压缩的最小文件;小于设置值的文件将不会被压缩
  gzipminlength1k;
  gzip压缩级别110
  gzipcomplevel2;
  进行压缩的文件类型。
  gziptypestextplainapplicationjavascriptapplicationxjavascripttextcssapplicationxmltextjavascriptapplicationxhttpdphpimagejpegimagegifimagepng;
  是否在httpheader中添加Vary:AcceptEncoding,建议开启
  gzipvaryon;
  }
  保存并重启nginx,刷新页面(为了避免缓存,请强制刷新)就能看到效果了。以谷歌浏览器为例,通过F12看请求的响应头部:
  我们可以先来对比下,如果我们没有开启zip压缩之前,我们的对应的文件大小,如下所示:
  现在我们开启了gzip进行压缩后的文件的大小,可以看到如下所示:
  并且我们查看响应头会看到gzip这样的压缩,如下所示
  gzip压缩前后效果对比:jquery原大小90kb,压缩后只有30kb。
  gzip虽然好用,但是以下类型的资源不建议启用。
  1、图片类型
  原因:图片如jpg、png本身就会有压缩,所以就算开启gzip后,压缩前和压缩后大小没有多大区别,所以开启了反而会白白的浪费资源。(Tips:可以试试将一张jpg图片压缩为zip,观察大小并没有多大的变化。虽然zip和gzip算法不一样,但是可以看出压缩图片的价值并不大)
  2、大文件
  原因:会消耗大量的cpu资源,且不一定有明显的效果。
  ngxhttpupstreammodule的作用是什么?
  ngxhttpupstreammodule用于定义可通过fastcgi传递、proxy传递、uwsgi传递、memcached传递和scgi传递指令来引用的服务器组。
  什么是C10K问题?
  C10K问题是指无法同时处理大量客户端(10,000)的网络套接字。
  Nginx是否支持将请求压缩到上游?
  您可以使用Nginx模块gunzip将请求压缩到上游。gunzip模块是一个过滤器,它可以对不支持gzip编码方法的客户机或服务器使用内容编码:gzip来解压缩响应。
  如何在Nginx中获得当前的时间?
  要获得Nginx的当前时间,必须使用SSI模块、和datelocal的变量。ProxysetheaderTHETIMEdategmt;
  用Nginx服务器解释s的目的是什么?
  用于运行Nginxs参数的可执行文件。
  如何在Nginx服务器上添加模块?
  在编译过程中,必须选择Nginx模块,因为Nginx不支持模块的运行时间选择。
  生产中如何设置worker进程的数量呢?
  在有多个cpu的情况下,可以设置多个worker,worker进程的数量可以设置到和cpu的核心数一样多,如果在单个cpu上起多个worker进程,那么操作系统会在多个worker之间进行调度,这种情况会降低系统性能,如果只有一个cpu,那么只启动一个worker进程就可以了。
  nginx状态码
  499:
  服务端处理时间过长,客户端主动关闭了连接。
  502:
  (1)。FastCGI进程是否已经启动
  (2)。FastCGIworker进程数是否不够
  (3)。FastCGI执行时间过长
  fastcgiconnecttimeout300;
  fastcgisendtimeout300;
  fastcgireadtimeout300;
  (4)。FastCGIBuffer不够,nginx和apache一样,有前端缓冲限制,可以调整缓冲参数
  fastcgibuffersize32k;
  fastcgibuffers832k;
  (5)。ProxyBuffer不够,如果你用了Proxying,调整
  proxybuffersize16k;
  proxybuffers416k;
  (6)。php脚本执行时间过长
  将phpfpm。conf的0s的0s改成一个时间
  原作者:夏目
  源链接:
  https:blog。csdn。netwuzhiwei549articledetails122758937
  编辑:Linux就该这么学
  小编有话说
  推荐服务:
  向下滑动查看更多
  点击【IT面试精选】查看全网最权威的一线大厂面试真题及面试经验,每天更新哦!
  点击【IT路边社】查看实时更新的IT新闻资讯
  点击【2022互联网大事件盘点】查看2022互联网最全大事件盘点
  回复【加群】群满啦!添加波哥微信拉您进群!
  点击【安全加固】获取最新安全加固脚本
  点击【一键iptables脚本】获取iptables自动设置脚本

乞丐毛发与洗发水首先,有多少乞丐可以好好洗头?有多少乞丐可以用洗发水好好洗头?前一段在头条上看到一篇文章,某博主掉头发严重,换过很多洗发水都没用。后来,他严格控制洗头的频率,并不再使用洗发水,偶尔最新洗发水名单曝光!你的洗发水是王者还是垃圾?选对洗发水我真的太爱了以前洗头,每次都要掉一大把下水道地漏经常堵我一直以为我是脱发发质尝试换了很多洗发水头发依旧隔一天就油了大品牌蜂花,美国的海飞丝,法国的清扬都试过治不了我的头皮阿的江一剑下天山,新掌门三人入北疆!二人转不停止,谁都不好使遥记三年前,阿导归故里。彼时南疆喜来北疆乐,天山昆仑两相贺!但是正所谓好景不长,转瞬已然三年。如若单纯从战绩而言,新疆广汇真的是体会到了什么叫做每下愈况。对此阿的江指导也一直大惑不爸爸打人事件没有什么反转不反转,法律说了算光看这个视频,一巴掌把孩子扇到地上,爷爷气愤开始推搡,接着就是互推拿起凳子砸。结局就是孩子软组织挫伤,老人也受伤。这个该交给法律,一切按照法律途径走起,毫无悬念。起因就是孩子在幼儿巴巴多斯唯一的黑人发达国家,歌坛天后蕾哈娜故乡头条创作挑战赛在世界上就有一个黑人建立的小国,是全球唯一的黑人发达国家,不过却并不位于非洲,它就是位于大西洋之中的一个小小岛国巴巴多斯。巴巴多斯共和国,位于东加勒比海小安的列斯群岛桂林从异乡变成了我的故乡十年前热合曼一家人及朋友在桂林市七星公园游玩时的留影。(记者苏展翻拍)今年10月,热合曼(左五)及他的家人在店门口拍全家福。红彤彤的横幅上的话,也是新疆大叔扎根桂林多年的心声。记者干了一碗恒河水和干了一碗黄河长江水有啥区别?那干净又卫生的古老神秘恒河水,最近又有新故事了干了一碗恒河水,然后近日,日本一名网红到印度后,打算深度体验印度文化,于是她就跟本地人一起到恒河中沐浴。只见她将全身都浸没在恒河水里,今夜,煮一壶乡愁,与故乡的画卷对饮郝有花(图片来自网络)我在初冬的梦里醒来随笔写下的执着,化成一串串珍珠在流年里打破季节的声音,时间的轮换我对着一堵黄土墙悄悄地触摸你残留的余温无可奈何,我在你温柔的目光里再也看不见50岁的我,建议三四十岁的女人多用这4种护肤品,用和不用差距大很多女人都觉得护肤品用得越多越好,但其实我们皮肤的吸收能力有限,涂了护肤品在脸上一层又一层,反而不利于皮肤吸收和恢复。到了50岁,我才发现护肤品应该尽量简单而不是复杂,三四十岁的时光电实测100电量干到趴窝!合创Z03续航这么实在?作为新世代年轻人的代步车,合创Z03在设计空间以及配置上的表现我觉得都做得不错,而且在广汽的技术加持下,这款车还配备了号称安全系数颇高的弹匣电池。当然了,除了安全之外,新能源电动车王者荣耀11。12五款皮肤返场,全新皮肤上架,七周年击败免费得王者荣耀将在11月12日晚上8点举行共创之夜,并在当天上线四大活动前来助阵,其中包括五款限定皮肤返场阿古朵新皮肤上架捞宝箱抽永久内测皮肤七周年击败特效免费得。下面一起来看看具体内容
竞速赛车游戏达喀尔拉力赛Steam预购价格上调多人竞速赛车游戏达喀尔拉力赛在Steam平台的预购价格上调,国区从116元涨至159元,游戏将于10月4日发售,暂不支持中文。Steam页面达喀尔拉力赛是有史以来规模最大的沙漠越野消息称iPhone15Ultra将支持8K视频并带来更长的电池续航iPhone14系列上周刚刚问世(除了14Plus下个月才上市),现在就开始传言iPhone15是不是太早了?不,其实这些传闻已经持续了一段时间了,LeaksApplePro刚刚发vivoX90系列手机屏幕曝光或在今年年底发布9月20日消息,数码博主数码闲聊站发博称,vivoX系列迭代旗舰vivoX90系列手机将于今年年底或明年年初发布。此外,该博主透露vivoX90系列将搭载高通骁龙8Gen2移动平台明年手机或将加持这两项新技术!哪个你最期待?今年,手机行业难得的出现了两项让人亮眼的创新技术,按照以往手机行业发展的惯例,今年备受瞩目的新技术明年各手机厂商都会纷纷跟进,并且会在今年创新的基础上作进一步的优化,具体是哪两项新纯电重卡与燃料电池重卡的技术与成本对比随着汽车纯电技术的推进,之前被认为不太适合纯电方案的交通领域也逐渐在尝试纯电动这种新的技术,长途运输的重卡就是这其中的一个典型例子。之所以先前以为不太适合主要是这种交通工具,它不像全球首款北斗量子手机发布,对标苹果和华为?本月初,华为和苹果相继发布了Mate50和iPhone14系列手机。这两款手机均支持卫星通信功能,可谓好好秀了一波存在感。时间没过多久,最近又有一款噱头十足的手机出来了,而且主打的楼方舟ampampamp游戏羊了个羊,手机烫了个烫最近有一款爆火的微信小游戏羊了个羊游戏一共就两关玩家通过点选图案放入卡槽对卡牌进行消除卡槽可放7张牌3张相同的图案即可完成消除直到停留在第二关手机已发烫咱就说羊了个羊有多难?有人手结合选手韩服Rank胜率,预测S赛登场热门英雄,ADC出现巨变距离世界赛的时间越来越近了,许多朋友最关系的自然是世界赛版本与之前的LPL比赛有哪些变化,那么本期小编就结合各个选手的rank记录以及目前韩服各位置的胜率情况,盘点出了世界赛各位置UZI等多名职业选手或要复出了吗?相信看完Doinb举办的LBL训练赛之后很多观众都发现了一件事吧,只要经过训练哪怕是退役选手也能和现役选手拼一下,比较经典的就是宝蓝和Imp这对退役冠军组合,在打现役LPL下路的时董卓三国著名义父,压迫感满满的西凉卷王,如何成为大汉太师?董卓!三国新手村最强boss!董卓是三国前期最能整活儿的boss。早年的董卓是个兢兢业业的打工人,在广袤大西北一路揍羌族,把自己打成了大军阀。本来中原的事儿轮不到他掺和,可灵帝驾崩热血传奇三大职业的技能你们知道多少呢?热血传奇中三大职业的技能你们知道多少呢,下面来一起盘点一下三大职业的技能吧。战士的格斗技巧1。基础剑术2。攻杀剑术3。刺杀剑术4。半月弯刀5。野蛮冲撞6。烈火剑法。法师的魔法生涯1
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网