1. Nginx 是什么?
Nginx 是一个高性能的 HTTP 和反向代理服务器,及电子邮件代理服务器,同时也是一个非常高效的反向代理、负载均衡。
2. Nginx 的作用?
1.反向代理,将多台服务器代理成一台服务器。
2.负载均衡,将多个请求均匀的分配到多台服务器上,减轻每台服务器的压力,提高服务的吞吐量。
3.动静分离,nginx 可以用作静态文件的缓存服务器,提高访问速度
3 Nginx 的优势?
(1) 可以高并发连接(5 万并发,实际也能支持 2~4 万并发)。
(2) 内存消耗少。
(3) 成本低廉。
(4) 配置文件非常简单。
(5) 支持 Rewrite 重写。
(6) 内置的健康检查功能。
当我们配置一个服务的时候,nginx与服务有个心跳,当这个服务挂掉,nginx会自动将这个服务下线;同时他还会定期检查,如果下线的服务,正常了,他就会将服务重新上线
(7) 节省带宽。
nginx有压缩机制返回
(8) 稳定性高。
(9) 支持热部署。
4 什么是反向代理?
反向代理是指以代理服务器来接受 internet 上的连接请求,然后将请求,发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
反向代理总结就一句话:代理端代理的是服务端.
5 什么是正向代理?
一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
正向代理总结就一句话:代理端代理的是客户端。
6 什么是负载均衡?
负载均衡即是代理服务器将接收的请求均衡的分发到各服务器中,负载均衡主要解决网络拥塞问题,提高服务器响应速度,服务就近提供,达到更好的访问质量,减少后台服务器大并发压力。
7 Nginx 是如何处理一个请求的?
首先,nginx 在启动时,会解析配置文件,得到需要监听的端口与 ip 地址,然后在nginx 的 master 进程里面先初始化好这个监控的 socket,再进行 listen,然后再 fork 出多个子进程出来, 子进程会竞争 accept 新的连接。
此时,客户端就可以向 nginx 发起连接了。当客户端与 nginx 进行三次握手,与nginx建立好一个连接后,此时,某一个子进程会 accept 成功,然后创建 nginx 对连接的封装,即 ngx_connection_t 结构体,接着,根据事件调用相应的事件处理模块,如 http 模块与客户端进行数据的交换。
最后,nginx 或客户端来主动关掉连接,到此,一个连接就寿终正寝了。
8 为什么 Nginx 性能这么高?
得益于它的事件处理机制:异步非阻塞事件处理机制:运用了 epoll 模型,提供了一个队列,排队解决。