最近,有位朋友向小青咨询:“什么是Nginx?,面试的时候一般都会问哪些专业的问题呢?”,但说实话,我对Nginx的了解处于小白的阶段。所以,小青不得不向同事以及度娘请教,今天就将我请教的成果整理如下,希望能够帮助到大家哦!
1、什么是Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
2、为什么要用Nginx
跨平台、配置简单、方向代理、高并发连接:处理2-3万并发连接数,官方监测能支持5万并发,内存消耗小:开启10个nginx才占150M内存 ,nginx处理静态文件好,耗费内存少,
而且Nginx内置的健康检查功能:如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器了。重新将请求提交到其他的节点上。
使用Nginx的话还能:
节省宽带:支持GZIP压缩,可以添加浏览器本地缓存
稳定性高:宕机的概率非常小
接收用户请求是异步的
3、为什么Nginx性能这么高
因为他的事件处理机制:异步非阻塞事件处理机制:运用了epoll模型,提供了一个队列,排队解决
4.Nginx怎么处理请求的
nginx接收一个请求后,首先由listen和server_name指令匹配server模块,再匹配server模块里的location,location就是实际地址
5.什么是正向代理和反向代理
1、正向代理就是一个人发送一个请求直接就到达了目标的服务器
2、反方代理就是请求统一被Nginx接收,nginx反向代理服务器接收到之后,按照一定的规 则分发给了后端的业务处理服务器进行处理了
6.使用“反向代理服务器的优点是什么?
反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和web服务器之间的中间层。这对于安全方面来说是很好的,特别是当您使用web托管服务时。
7.Nginx的优缺点
优点:
1.占内存小,可实现高并发连接,处理响应快
2.可实现http服务器、虚拟主机、方向代理、负载均衡
3.Nginx配置简单
4.可以不暴露正式的服务器IP地址
缺点:
动态处理差:nginx处理静态文件好,耗费内存少,但是处理动态页面则很鸡肋,现在一般前端用nginx作为反向代理抗住压力,
8.如何用Nginx解决前端跨域问题?
使用Nginx转发请求。把跨域的接口写成调本域的接口,然后将这些接口转发到真正的请求地址。
9 .限流怎么做的,算法是什么,(限制请求速度)
Nginx限流就是限制用户请求速度,防止服务器受不了
限流有3种,我这只写了最平常的一种(限制访问频率(正常流量))
1、限制访问频率(正常流量)
2、限制访问频率(突发流量)
3、限制并发连接数
1、限制访问频率(正常流量):限制一个用户发送的请求,我Nginx多久接收一个。
#定义限流维度,一个用户一分钟一个请求进来,多余的全部漏掉
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/m;
#绑定限流维度
server{
location/seckill.html{
limit_req zone=one
proxy_pass http://lj_seckill;
}
}
1r/s代表1秒一个请求 1r/m一分钟接收一个请求
(此流也叫做漏桶流,多余的请求全部不要,漏掉)
10.为什么要做动静分离?
Nginx是当下最热的Web容器,网站优化的重要点在于静态化网站,网站静态化的关键点则是是动静分离,动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们则根据静态资源的特点将其做缓存操作。
让静态的资源只走静态资源服务器,动态的走动态的服务器
Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术。
对于静态资源比如图片,js,css等文件,我们则在反向代理服务器nginx中进行缓存。这样浏览器在请求一个静态资源时,代理服务器nginx就可以直接处理,无需将请求转发给后端服务器tomcat。
若用户请求的动态文件,比如servlet,jsp则转发给Tomcat服务器处理,从而实现动静分离。这也是反向代理服务器的一个重要的作用。
以上,就是小编为大家整理的Nginx面试常见问题,希望能够帮助到大家!由于内容是整理的,如有侵权请联系小编进行删除!
北大青鸟运城恩驰校区是北大青鸟APTECH的晋南直属学校,依托北京大学资源,获得北京大学师资、学术、技术教学资源支持,成为目前晋南地区获得授权且规模较大的软件开发技术实训中心,同时也是北大青鸟APTECH体系中开设的全课程以及与企业无缝对接的综合校区,打造北大青鸟运城恩驰校区采用公司+学校的办学模式,将北大青鸟的教育资源、教学条件与实战化的企业项目运营相结合,成为全真实模拟IT公司教学模式的典范。
现开设课程涵盖: WEB前端开发,数据库开发,SSH、SSM、JQuery框架集开发,ASP.Net MVC开发企业级应用。
运城北大青鸟为提升学员的综合素质,丰富学员们的课余生活。特举办演讲比赛、超级演说家、PPT大赛、辩论赛等各种活动。如果你也想改变自己,想加入这个大家庭,那么可以点击网站的在线咨询,或者在线报名。老师会第一时间与你联系。