1、Ngnix
是一个轻量级/高性能的反向代理web服务器,它实现非常高效的反向代理、负载均衡、动静分离;可以处理2~3万并发连接数,官方监测能支持5W并发。
2、Ngnix实现高性能的原因
时间处理机制:异步非阻塞机制,运用了epoll模型。
3、ngnix如何处理请求
ngnix接受一个请求后,首先由listen和server_name指定匹配的server模块,再匹配server模块里的location,location就是实际地址。
4、反向代理
ngnix可以作为反向代理服务器,配置简单、不对客户端暴露正式服务器的IP地址,实现后端服务器的负载均衡。
*正向代理是客户端假设的服务器,反向代理是服务器端架设的服务器。
5、支持的负载均衡算法:
轮询、权重、ip_hash,最少连接数,fair(插件,根据响应时间最短)url_hash(插件)等
6 、动静分离
将静态资源前置到ngnix,减轻应用服务器压力
7、跨域
浏览器的同源(域名、协议、端口)策略,会让浏览器只执行同源的脚本,如果非同源,会报跨域异常。
8、限流
如果请求的数量超过阈值,可以对请求进行引流或者拒绝。一般有两种算法:漏桶算法(限定速度向后台发送请求)和令牌算法(桶中放入一定的令牌,如果没有令牌则不能发送请求)。
9、高可用
keepalived+虚拟IP。keepalived用来管理虚拟IP,如果一台ngnix出现故障,则将虚拟IP漂移到备机上。