Nginx学习(萌新面试)
Nginx学习(萌新面试)
什么是Nginx?
Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供邮件服务。
Nginx是一款轻量级的Web 服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
特点:
- 占用内存小 不超过2M
- 并发能力强(50000个并发请求响应)
为什么用Nginx?
- 跨平台、配置简单、方向代理、高并发连接(处理2-3万并发连接数,官方监测能支持5万并发,内存消耗小:开启10个nginx才占150M内存 ,nginx处理静态文件好,耗费内存少)
- 而且Nginx内置的健康检查功能(如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器了。重新将请求提交到其他的节点上。)
- 使用Nginx的话还能
- 节省宽带:支持GZIP压缩,可以添加浏览器本地缓存
- 稳定性高:宕机的概率非常小
- 接收用户请求是异步的
为什么Nginx性能这么高?
因为他的事件处理机制:
- 异步非阻塞事件处理机制
- 运用了epoll模型,提供了一个队列,排队解决
什么是正向代理和反向代理?
正向代理:
- 正向代理是自己在访问其他资源的时候,通过正向代理服务器来访问,可以做访问控制策略,由正向代理去访问服务器。
反向代理:
- 反向代理是外网访问内网资源的时候,访问到我的反向代理服务器,由反向代理服务器去访问我的资源,并且记录客户端ip,防止用户直接访问到我的后端服务器。
反向代理服务器的优点是什么?
- 反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和web服务器之间的中间层。这对于安全方面来说是很好的,特别是当您使用web托管服务时。
Nginx的优缺点?
-
优点:
- 占内存小,可实现高并发连接,处理响应快
- 可实现http服务器、虚拟主机、方向代理、负载均衡
- Nginx配置简单
- 可以不暴露正式的服务器IP地址
-
缺点:
- 动态处理差:nginx处理静态文件好,耗费内存少,但是处理动态页面则很鸡肋,现在一般前端用nginx作为反向代理抗住压力,
Nginx负载均衡的算法怎么实现的?
为了避免服务器崩溃,大家会通过负载均衡的方式来分担服务器压力。将对后台服务器组成一个集群,当用户访问时,先访问到一个转发服务器,再由转发服务器将访问分发到压力更小的服务器。
负载均衡的策略有哪些?
轮询(默认)
- 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某个服务器宕机,能自动剔除故障系统。
upstream backserver {
server 192.168.0.12;
server 192.168.0.13;
}
权重 weight
- weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。其次是为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。
upstream backserver {
server 192.168.0.12 weight=2; #20%
server 192.168.0.13 weight=8; #80%
}
ip_hash( IP绑定)
- 每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,
并且可以有效解决动态网页存在的session共享问题
upstream backserver {
ip_hash;
server 192.168.0.12:88;
server 192.168.0.13:80;
}