40个Nginx常问面试题
8月4日 蚀肉堂投稿 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
提供服务的域名主机名
location{第一个location区块开始
站点的根目录,相当于Nginx的安装目录
indexindex。htmlindex。默认的首页文件,多个用空格分开
}第一个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默认的首页文件
logsNginxahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a目录
access。log访问ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a文件
error。log错误ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a文件
nginx。pidpid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
proxytemp临时目录
sbinNginx命令目录
nginxNginx的启动命令
scgitemp临时目录
uwsgitemp临时目录
Nginx配置文件nginx。conf有哪些属性模块?workerprocesses1;worker进程的数量
events{事件区块开始
workerconnections1024;每个worker进程支持的最大连接数
}事件区块结束
http{HTTP区块开始
includemime。Nginx支持的媒体类型库文件
默认的媒体类型
开启高效传输模式
keepalivetimeout65;连接超时
server{第一个Server区块开始,表示一个独立的虚拟主机站点
listen80;提供服务的端口,默认80
提供服务的域名主机名
location{第一个location区块开始
站点的根目录,相当于Nginx的安装目录
indexindex。htmlindex。默认的首页文件,多个用空格分开
}第一个location区块结果
errorpage50050250350450x。出现对应的http状态码时,使用50x。html回应客户
location50x。html{location区块开始,访问50x。html
指定对应的站点目录为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{
}
步骤:
创建目录
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{
server192。168。0。12:88;
server192。168。0。13:80;
}
4。fair(第三方插件)
必须安装upstreamfair模块。
对比weight、iphash更加智能的负载均衡算法,fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,响应时间短的优先分配。哪个服务器的响应速度快,就将请求分配到那个服务器上。
upstreambackserver{
serverserver1;
serverserver2;
}
5。urlhash(第三方插件)
必须安装Nginx的hash软件包
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率。upstreambackserver{
serversquid1:3128;
serversquid2:3128;
hashmethodcrc32;
}
如何用Nginx解决前端跨域问题?
使用Nginx转发请求。把跨域的接口写成调本域的接口,然后将这些接口转发到真正的请求地址。
Nginx虚拟主机怎么配置?
1、基于域名的虚拟主机,通过域名来区分虚拟主机应用:外部网站
2、基于端口的虚拟主机,通过端口来区分虚拟主机应用:公司内部网站,外部网站的管理后台
3、基于ip的虚拟主机。
基于虚拟主机配置域名
需要建立datawwwdatabbs目录,windows本地hosts添加虚拟机ip地址对应的域名解析;对应域名网站目录下新增index。html文件;当客户端访问www。lijie。com,监听端口号为80,直接跳转到datawww目录下文件
server{
listen80;
servernamewww。lijie。
location{
indexindex。htmlindex。
}
}
当客户端访问www。lijie。com,监听端口号为80,直接跳转到databbs目录下文件
server{
listen80;
servernamebbs。lijie。
location{
indexindex。htmlindex。
}
}
基于端口的虚拟主机
使用端口来区分,浏览器使用域名或ip地址:端口号访问当客户端访问www。lijie。com,监听端口号为8080,直接跳转到datawww目录下文件
server{
listen8080;
servername8080。lijie。
location{
indexindex。htmlindex。
}
}
当客户端访问www。lijie。com,监听端口号为80直接跳转到真实ip服务器地址127。0。0。1:8080
server{
listen80;
servernamewww。lijie。
location{
proxypasshttp:127。0。0。1:8080;
indexindex。htmlindex。
}
}
location的作用是什么?
location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。
location的语法能说出来吗?
注意:代表自己输入的英文字母
Location正则案例优先级1,精确匹配,根路径
location{
return400;
}
优先级2,以某个字符串开头,以av开头的,优先匹配这里,区分大小写
locationav{
}
优先级3,区分大小写的正则匹配,匹配media路径
locationmedia{
}
优先级4,不区分大小写的正则匹配,所有的。jpggifpng都走这里
location。。(jpggifpngjscss){
}
优先7,通用匹配
location{
return403;
}
限流怎么做的?
Nginx限流就是限制用户请求速度,防止服务器受不了
限流有3种
正常限制访问频率(正常流量)
突发限制访问频率(突发流量)
限制并发连接数
Nginx的限流都是基于漏桶流算法
实现三种限流算法
1、正常限制访问频率(正常流量):
限制一个用户发送的请求,我Nginx多久接收一个请求。
Nginx中使用ngxhttplimitreqmodule模块来限制的访问频率,限制的原理实质是基于漏桶算法原理来实现的。在nginx。conf配置文件中可以使用limitreqzone命令及limitreq命令限制单个IP的请求处理频率。定义限流维度,一个用户一分钟一个请求进来,多余的全部漏掉
limitreqzonebinaryremoteaddrzoneone:10mrate1
绑定限流维度
server{
locationseckill。html{
proxypasshttp:
}
}
1rs代表1秒一个请求,1rm一分钟接收一个请求,如果Nginx这时还有别人的请求没有处理完,Nginx就会拒绝处理该用户请求。
2、突发限制访问频率(突发流量):
限制一个用户发送的请求,我Nginx多久接收一个。
上面的配置一定程度可以限制访问频率,但是也存在着一个问题:如果突发流量超出请求被拒绝处理,无法处理活动时候的突发流量,这时候应该如何进一步处理呢?
Nginx提供burst参数结合nodelay参数可以解决流量突发的问题,可以设置能处理的超过设置的请求数外能额外处理的请求数。我们可以将之前的例子添加burst参数以及nodelay参数:定义限流维度,一个用户一分钟一个请求进来,多余的全部漏掉
limitreqzonebinaryremoteaddrzoneone:10mrate1
绑定限流维度
server{
locationseckill。html{
limitreqzonezoneburst5
proxypasshttp:
}
}
为什么就多了一个burst5呢,多了这个可以代表Nginx对于一个用户的请求会立即处理前五个,多余的就慢慢来落,没有其他用户的请求我就处理你的,有其他的请求的话我Nginx就漏掉不接受你的请求
3、限制并发连接数
Nginx中的ngxhttplimitconnmodule模块提供了限制并发连接数的功能,可以使用limitconnzone指令以及limitconn执行进行配置。接下来我们可以通过一个简单的例子来看下:http{
limitconnzonebinaryremoteaddrzonemyip:10m;
limitconnzoneservernamezonemyServerName:10m;
}
server{
location{
limitconnmyip10;
limitconnmyServerName100;
rewritehttp:www。lijie。
}
}
上面配置了单个IP同时并发连接数最多只能10个连接,并且设置了整个虚拟服务器同时最大并发数最多只能100个链接。当然,只有当请求的header被服务器处理后,虚拟服务器的连接数才会计数。刚才有提到过Nginx是基于漏桶算法原理实现的,实际上限流一般都是基于漏桶算法和令牌桶算法实现的。
漏桶流算法和令牌桶算法知道?漏桶算法
漏桶算法思路很简单,我们把水比作是请求,漏桶比作是系统处理能力极限,水先进入到漏桶里,漏桶里的水按一定速率流出,当流出的速率小于流入的速率时,由于漏桶容量有限,后续进入的水直接溢出(拒绝请求),以此实现限流。
令牌桶算法
令牌桶算法的原理也比较简单,我们可以理解成医院的挂号看病,只有拿到号以后才可以进行诊病。
系统会维护一个令牌(token)桶,以一个恒定的速度往桶里放入令牌(token),这时如果有请求进来想要被处理,则需要先从桶里获取一个令牌(token),当桶里没有令牌(token)可取时,则该请求将被拒绝服务。令牌桶算法通过控制桶的容量、发放令牌的速率,来达到对请求的限制。
Nginx配置高可用性怎么配置?
当上游服务器(真实访问服务器),一旦出现故障或者是没有及时相应的话,应该直接轮训到下一台服务器,保证服务器的高可用
Nginx配置代码:server{
listen80;
servernamewww。lijie。
location{
指定上游服务器负载均衡服务器
proxypasshttp:backS
nginx与上游服务器(真实访问的服务器)超时时间后端服务器连接的超时时间发起握手等候响应超时时间
proxyconnecttimeout1s;
nginx发送给上游服务器(真实访问的服务器)超时时间
proxysendtimeout1s;
nginx接受上游服务器(真实访问的服务器)超时时间
proxyreadtimeout1s;
indexindex。htmlindex。
}
}
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
启用gzip压缩的最小文件;小于设置值的文件将不会被压缩
gzipminlength1k;
gzip压缩级别110
gzipcomplevel2;
进行压缩的文件类型。
是否在httpheader中添加Vary:AcceptEncoding,建议开启
}
保存并重启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的变量。ProxysetheaderTHETIME
用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自动设置脚本
结婚一个月查出绝症被指骗婚老公一家三口逼迫离婚最近,家住重庆主城区的何洁(化名)的生活就像坐过山车一样,大起大落。原本还在享受新婚蜜月的她,突然被查出患有系统性红斑狼疮。这个病不仅暂时无法根治,而且患者在病情稳定前还不能要……
陶汉林打脸杜锋!打爆NBL第一中锋,当选周最佳,无法进入国家头条创作挑战赛10月17日,CBA联盟公布了联赛第一周最佳球员人选,咱们国内球员由山东男篮内线核心陶汉林当选,外援则由江苏男篮的安东尼奥布莱克尼当选,能够当选联赛第一周本……
世界上龙真的存在吗,盘点那些神秘的目击事件世界上龙真的存在吗,盘点那些神秘的目击事件:龙在中国具有非常非常重要的地位,是我国华夏文明的图腾,在我国的文化认识中,龙是身躯长、眼睛突出、嘴边有长须、四对爪子、鳞片大、腥味浓……
40个Nginx常问面试题Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。那么关于Nginx的核心技术点有哪些呢?什……
世界上最恐怖的7种鱼个个凶神恶煞第一个见了离远点世界上最恐怖的7种鱼:个个凶神恶煞第一个见了离远点世界上最恐怖的7种鱼,他们跟看起来一样,很恐怖的,尤其是第一个,见了一定要离远点。石头鱼巨石鱼有非常可怕的外表,科……
沼泽章鱼是什么现在有这种生物吗(图)沼泽章鱼是什么:现在有这种生物吗(图)沼泽章鱼是科学家预测会在一亿年后出现的地球新物种,主要栖息在孟加拉沼泽地区,重40英镑,可在没有水的情况下生存4天,出至科幻片《未来……
鸡蛋的又一好处被发现了!但怎么吃有讲究,很多人第一步就错了现如今,心血管疾病的发病率越来越高了,而在饮食中,鸡蛋一直是众说纷纭的焦点食材有些人觉得鸡蛋的胆固醇高,会增加心血管疾病的风险,因而不敢吃;但又有研究显示吃鸡蛋与心血管疾病死亡……
人大财经委财政部央行银保监会周末重磅发声!3月18日,在全球财富管理论坛2023年会上,全国人大常委会预算工作委员会主任、全国人大财政经济委员会副主任委员史耀斌,财政部副部长、党组成员夏先德,人民银行副行长、党委委员宣……
醒来发现被子有血什么情况关于一摊血到底怎么回事大学生小梅在8月30日开学前到武汉市武昌区南湖附近找同学玩,当晚住在了附近的城市便捷酒店,第二天早上醒来,他发现被子里有一摊血迹,这是怎么回事呢?醒来发现被子有血什么情况……
鸡你太美是什么梗鸡你太美意思及歌曲详情前段网上流行的一个新鲜词语:鸡你太美!到现在很多人还不知道这个流行词到底是个什么梗?据悉,鸡你太美这个梗好像还与蔡徐坤有关系,另外原版鸡你太美是什么歌曲?鸡你太美什么意思,下面……
国庆抒怀重阳有感随笔金秋妖娆,华诞荣光,神州大地万家欢,龙宇盛世,祖国昌盛,华夏南北举国庆。映日芙蓉枫林晚翠莲花粉丹桂香秋山金黄红漫画韵味盏酬菊花酒登高览胜赋重……
30年的蚁后竟长这样你一定没见过(组图)30年的蚁后竟长这样你一定没见过(组图)(图)四川挖出巨型蚁穴活捉30岁蚁后长约7厘米每天繁殖数千蚁卵。白蚁的破坏能力惊人,危害极大。我们一般很难对付它,不过对于专家来说……
破釜沉舟的故事发生的时间及讲述的是哪次战役破釜沉舟的故事:发生的时间及讲述的是哪次战役成语破釜沉舟:比喻不留退路,非打胜仗不可,下决心不顾一切地干到底。釜:煮饭用的一种锅;舟:船。打破饭锅,凿沉渡船,比喻决一死战……
德芙巧克力的故事含义揭晓,背后一段凄美故事德芙巧克力的含义是什么巧克力是大家比较喜欢吃的零食之一,而德芙巧克力便是其中的佼佼者之一,其知名度还是很高的,德芙巧克力的含义也很有创意,其中包含的爱情故事也是耐人寻味的……
第一封见字如面,开始我们的时空对话吧嗨,你好吗此刻,我在西安,今天是个晴天。写信这件事是我今天早上看完房琪的《真希望你也喜欢自己》这本书所迸发的灵感,我想从今天开始,开始以写信的方式,将我的生活和你的……
古代传奇故事两不相欠,风尘三侠,红颜祸水二赵古代传奇故事:两不相欠唐朝安史之乱时期,在长安城外的一间破茅屋里、住着一户人家,男的叫王兴,女的叫丽娘。小两口男耕女织,日子虽然清苦,倒也自得其乐。到了第二年丽娘就生下一……
华为传来两个新消息,任正非或说话不算话?一直以来,华为的动向都牵动着很多人的心,毕竟作为比较有气节的中国科技企业,华为以一己之力扛住了老美四轮打压。另外,近日有消息称老美正在考虑让所有美企都切断与华为的联系,这也让大……
十大原耽是哪十个十大原耽是什么推荐书单十大原耽是哪十个,比如十大原耽:1。天官赐福、2。全球高考、3。某某、4。撒野、5。AWM〔绝地求生〕、6。破云、7。地球上线、8。烈火浇愁、9。伪装学渣、10。迪奥先生;再比……
求解阿西吧什么意思出处来源及下一句阿西吧,意思类似于我去,来源于韩语中的感叹词?!??!。阿西吧的意思其实就是表示对某一事件或者某一事物感到惊奇、震惊、愤怒等等时而说出的话语,属于发泄情感的词语。1阿西吧……
蹦极猪被送屠宰场肥猪现场蹦极照曝光近日,一头肥猪在景区蹦极的视频在网上传开了,一时间在网上引起了热议,据了解,现如今蹦极猪已经被送至屠宰场,肥猪现场蹦极照曝光,一起来看一下具体的情况。1月18日,在重庆涪……
春到人间草木知,身体里的那片草木,你知道如何养护吗?立春,二十四节气之首,冬去春来,冰渐消融,万物复苏。春天阳气生发,自然界一派生机勃勃。春到人间草木知人体脏腑受四时变化影响,也有一片草木,这便是肝。春属木,与肝相应。《素……
人生下半场,请把自己调成兼容模式人生如逆旅,年少时意气风发,一日看尽长安花。人到中年,又不免感叹世事艰难,潦倒新停浊酒杯。但生命的跋涉,永不停歇。人生下半场,更要强大自己,像海绵一样去吸收。……
猎豹咬斑马这地方下幕让人大笑(猎豹吃斑马过程)猎豹咬斑马这地方:下幕让人大笑在南非的克鲁格国家公园,几名游客在公园管理员的陪同下游览公园。他们幸运的发现了一只豹子在吃一只死斑马。从斑马膨胀的身体看,它应该不是被……
债市周报近期债市行情艳阳高照,您的理财收益是否跟着水涨船高债市播报:每日早上10点30,中午11点30,下午14点30(如有波动,推迟至15点)今年11月份以来,债市行情一塌糊涂。债基业绩走势曲线图,可谓是飞流直下三千尺,形成了……