1.Nginx是什么
Nginx(engine x)是一种轻量级、高性能的HTTP和反向代理web服务器,还可以作为电子邮件(IMAP/POP3/SMTP)代理服务器。
Nginx是由俄罗斯人用C语言编写,可以运行在Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows等各种操作系统上。
2.Nginx常用功能
(1)反向代理
正向代理:可以简单抽象成客户端(浏览器/Client)、正向代理服务器、目标服务器三部分;
客户端知道目标服务器的地址或域名,但是不能直接访问,需要将该信息告知正向代理服务器,正向代理服务器访问目标服务器并返回响应信息。客户端知道目标服务器,而目标服务器不知道客户端,只知道正向代理服务器。
反向代理:可以抽象成客户端(浏览器/Client)、反向代理服务器、目标服务器三部分;
客户端并不知道目标服务器的地址或域名,客户端知道的地址和域名由反向代理服务器提供,客户端访问该信息,经过反向代理服务器分发给真实的目标服务器,并接收响应信息,在返给客户端。客户端不知道目标服务器的相关信息。
(2)负载均衡
负载量:是指客户端的请求量;均衡规则:将请求分发到不同服务器处理的规则;负载均衡:将客户端请求按照均衡规则进行分发到不同服务器处理的过程。
负载均衡的调度算法:
1)round-robin(轮询调度算法):是每一次把来自客户端的请求轮流分配给服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。
2)weight-round-robin(权重轮询调度算法):可以给不同的服务器设置weight(权重);服务器被分配处理客户端请求的概率与服务器被设置的权重成正比。
3)ip_hash(IP哈希调度算法):同一个IP发出的所有请求被同一台服务器进行处理,除非这台服务器宕机,不能提供服务;是因为nginx会根据客户端IP的哈希值,分配给服务器处理客户端请求。
4)fair(智能调整调度算法):根据服务器处理请求的响应时间,响应时间少的效率高,有更大的概率被分配用来处理客户端请求。但nginx默认不支持fair算法,如需使用,需要安装upstream_fair模块。
5)url_hash(URL哈希调度算法):同一个url请求任何时候被同一台服务器进行处理,除非这台服务器宕机,不能提供服务;是因为nginx会根据请求的url的哈希值,分配给服务器处理客户端请求。但nginx默认不支持url_hash算法,如需使用,需要安装hash模块。
6)least_conn(最少连接调度算法):根据服务器拥有的最少连接数进行分配客户端的请求,以减少其他服务器的压力。
(3)动静分离
动静分离是指客户端的动态请求和静态请求分开访问,提高用户访问静态代码的速度,降低对后台应用访问。
本文暂时没有评论,来添加一个吧(●'◡'●)