1,简介
:
nginx是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强。
2,nginx的应用场景和具体可以做什么事情?
①作为web服务器:作为静态页面的web服务器,支持CGI协议的动态语言,不支持java。java程序只能通过与tomcat配合完成。支持5万个并发连接数。
②反向代理:将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端。暴露的是代理服务器地址,隐藏了真实服务器IP地址。
③负载均衡:(默认轮询分发)增加服务器数量,将请求分发到各个服务器上,将原想请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器。
④动静分离:就是把动态请求跟静态请求分开。加快网站的解析速度,把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。可以理解成使用nginx处理静态页面,使用tomcat处理动态页面。
⑤正向代理:通过代理服务器来访问Internet
3,nginx负载均衡的分配策略:
一,轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
二,weight,
代表权重,默认为1.权重越高被分配的客户端越多。
三,ip_hash,每个请求访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session问题。
四,fair,按后端服务器的响应时间来分配请求,响应时间短的优先分配。
五,其他参数
4,nginx原理
(master就相当于管理者,worker相当于打工者)
nginx和redis类似都采用了io多路复用机制,通过异步非阻塞的方式来处理请求。worker数和服务器的cpu数相等是最为适宜的。