Nginx — 基础原理
📋 本文节选自《Nginx 面试题》,返回 查看全部章节
1. 什么是Nginx?
Nginx是一个 轻量级/高性能的反向代理Web服务器,他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用nginx网站用户有很多,例如:新浪、网易、 腾讯等。
2. 为什么要用Nginx?
- 跨平台、配置简单、方向代理、高并发连接:处理2-3万并发连接数,官方监测能支持5万并发,内存消耗小:开启10个nginx才占150M内存 ,nginx处理静态文件好,耗费内存少,
- 而且Nginx内置的健康检查功能:如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器了。重新将请求提交到其他的节点上。
使用Nginx的话还能:
1、 节省宽带:支持GZIP压缩,可以添加浏览器本地缓存;
2、 稳定性高:宕机的概率非常小;
3、 接收用户请求是异步的;
3. 为什么Nginx性能这么高?
因为他的事件处理机制:异步非阻塞事件处理机制:运用了epoll模型,提供了一个队列,排队解决
4. Nginx怎么处理请求的?
nginx接收一个请求后,首先由listen和server_name指令匹配server模块,再匹配server模块里的location,location就是实际地址
server {
第一个Server区块开始,表示一个独立的虚拟主机站点
listen 80; 提供服务的端口,默认80
server_name localhost; 提供服务的域名主机名
location / {
第一个location区块开始
root html; 站点的根目录,相当于Nginx的安装目录
index index.html index.htm; 默认的首页文件,多个用空格分开
} 第一个location区块结果
}5. 什么是正向代理和反向代理?
1、 正向代理就是一个人发送一个请求直接就到达了目标的服务器;
2、 反方代理就是请求统一被Nginx接收,nginx反向代理服务器接收到之后,按照一定的规则分发给;了后端的业务处理服务器进行处理了
6. 使用“反向代理服务器的优点是什么?
反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和web服务器之间的中间层。这对于安全方面来说是很好的,特别是当您使用web托管服务时。
7. Nginx的优缺点?
优点:
1、 占内存小,可实现高并发连接,处理响应快;
2、 可实现http服务器、虚拟主机、方向代理、负载均衡;
3、 Nginx配置简单;
4、 可以不暴露正式的服务器IP地址;
- 缺点: 动态处理差:nginx处理静态文件好,耗费内存少,但是处理动态页面则很鸡肋,现在一般前端用nginx作为反向代理抗住压力,
8. Nginx应用场景?
1、 http服务器Nginx是一个http服务可以独立提供http服务可以做网页静态服务器;
2、 虚拟主机可以实现在一台服务器虚拟出多个网站,例如个人网站使用的虚拟机;
3、 反向代理,负载均衡当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要;用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会应为某台服务器负载高宕机而某台服务器闲置的情况。
4、 nginz中也可以配置安全管理、比如可以使用Nginx搭建API接口网关,对每个接口服务进行拦截;