Nginx面试整理

1、聊聊什么是Nginx
答:Nginx是一个web服务器和反向代理服务器,用于http、https、SMTP、pop3、IMAP协议,也是SMTP、pop3、IMAP代理服务器。
Nginx作为web服务器可以托管网站类似于tomcat一样,进行http服务处理,也可以作为反向代理服务器、负载均衡器和Http缓存。
Nginx不像传统服务器那样使用线程处理请求,而是使用事件驱动机制,是一种异步事件驱动结构。

2、说说Nginx的特性
答:Nginx服务器的特性包括:
1)反向代理/L7负载均衡器
2)嵌入式Perl解释器
3)动态二进制升级
4)可用于重新编写URL,具有非常好的PCRE支持

3、聊聊Nginx优缺点
优点
1)占内存小,可实现高并发连接,处理响应快,配置简单
2)高可靠性,用于反向代理,负载均衡,宕机概率极低
3)单机支持10万以上的并发连接
4)热部署 - master管理进程与worker工作进程的分离设计,使得Nginx能够提供热部署功能,即可以在7×24小时不间断服务的前提下,升级Nginx的可执行文件。

缺点
1)动态处理差
Nginx处理静态文件好,耗费内存少。但是处理动态页面则很鸡肋,现在一般前端用Nginx作为反向代理抗住压力。

4、聊聊Nginx应用场景
1)http服务器
Nginx是一个http服务,可以独立提供http服务。可以做网页静态服务器。
2)虚拟主机
可以实现在一台服务器虚拟出多个网站,例如个人网站使用的虚拟机。
3)反向代理、负载均衡
当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要多台服务器集群这时可以使用Nginx做反向代理。
并且多台服务器可以平均分担负载,不会有某台服务器负载高宕机而某台服务器闲置的情况。
Nginx中也可以配置安全管理、比如可以使用Nginx搭建API接口网关,对每个接口服务进行拦截。

5、聊聊使用反向代理服务器的优点是什么?
反向代理服务器可以隐藏服务器的存在和特征。
它充当互联网云和web服务器之间的中间层。
这对于安全方面来说是很好的,特别是当您使用web托管服务时。

6、聊聊什么是正向代理和反向代理
正向代理
正向代理的过程类似于科学上网,举个例子,当客户端请求网站时,先将请求发送到web代理服务器,然后web代理服务器再将请求发送到目标网站,最后再将结果回传到客户端。

反向代理
反向代理服务器作用在服务器端,它在服务器端收到请求后,请求分发到具体的服务器进行处理,然后再将结果返回到客户端。

7、聊聊反向代理的好处
1)保护了真实的web服务器,web服务器对外不可见,外网只能看到反向代理服务器,而反向代理服务器上并没有真实数据,因此,保证了web服务器的资源安全。
2)反向代理为基础产生了动静资源分离以及负载均衡的方式,减轻web服务器的负担,加速了对网站访问速度。
3)节约了有限的IP地址资源,企业内所有的网站共享一个注册的IP地址,这些服务器内部分配私有地址,对外采用虚拟主机的方式对外部提供服务。

8、Nginx有哪些负载均衡策略
1)轮询(默认)round_robin
每个请求按时间顺序逐一分配到不同的后端服务器。如果后端服务器down掉,能自动剔除。
2)IP哈希 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器。
3)最少连接 least_conn
下一个请求将被分配到活动连接数量最少的服务器。
4)权重 weight
weight的值越大分配到的概率越高,主要用于后端每台服务器性能不均的情况下,达到合理的资源利用率。

9、为什么用Nginx做动静态资源分离?
将网站的请求资源按照一定规则进行动静态分离,有利于提高网站的访问速度。
可以减轻后端服务器压力,提高静态资源访问速度。

10、Nginx如何做动静分离
Nginx根据客户端请求的url来判断请求的是否为静态资源,如果请求的url包含图片(jpg、png),则由Nginx进行处理。
如果请求的url包含php、jsp等,这个时候请求是动态的,则将请求转发给tomcat进行处理。

11、Nginx是如何处理一个请求的?
Nginx在启动时,会解析配置文件,得到需要监听的端口和ip地址,然后在Nginx的master进程里面,先初始化好这个监控的socket,再进行监听。并派生(fork)出多个子进程出来,子进程会竞争接收新的连接。这个时候,客户端就可以向Nginx发起连接了。

当客户端与Nginx进行了三次握手,与Nginx建立好一个连接后,这时某个子进程会接收成功,然后创建Nginx对连接的封装,即nginx_connection_t结构体,接着,根据事件调用相应的事件处理模块,如http模块与客户端进行数据交换,最后,Nginx或客户端主动关掉连接,到此,一个连接就寿终正寝了。

12、Nginx服务器上的Master和Worker进程分别是什么?
Master进程:读取及评估配置和维护
Worker进程:处理请求

13、Nginx压缩了解吗?如何开启压缩?
开启nginx gzip压缩后,css、js、等静态资源的大小会减少,可节约带宽,提高传输效率,但会消耗CPU资源。
不要压缩的对象:
1)大于1K的纯文本文件html、js、css
2)图片、视频不要压缩,因为不但不会减小,压缩时会消耗cpu和内存资源。

14、聊聊:nginx中500、502、503、504 有什么区别?
500:Internal Server Error 内部服务错误,比如脚本错误,编程语言语法错误。
502:Bad Gateway错误,网关错误。比如服务器当前连接太多,响应太慢,页面素材太多、带宽慢。
503:Service Temporarily Unavailable,服务不可用,web服务器不能处理HTTP请求,可能是临时超载或者是服务器进行停机维护。
504:Gateway timeout 网关超时,程序执行时间过长导致响应超时,例如程序需要执行20秒,而nginx最大响应等待时间为10秒,这样就会出现超时。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玉辰56

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值