Nginx介绍
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
内存: 不到2M
并发能力强: 3-5万次/秒 理想环境下 /tomcat服务器 150-220/秒
Nginx工作原理说明
默认条件下,nginx会按照指定的负载均衡规则访问服务器。如果访问的服务器又出现了问题,那么则会访问下一台服务器。但是随着负载均衡的继续,任然访问故障机.效率低.
Nginx命令
1).启动nginx start nginx 即使启动不成功,也不会报错!!!!
2).重启nginx nginx -s reload 如果配置文件编辑异常,则会显示报错信息
3).停止nginx nginx -s stop
入门案例
http {
server {
listen 80; # 监听端口号
server_name localhost; # 监听的服务名称
#反向代理的配置,获取用户指定的请求之后,将请求转向到什么位置
# / 请求访问的根目录
location / {
# root关键字 反向代理文件目录
root html;
# index关键字 默认跳转页面
index index.html index.htm;
}
}
}
反向代理-域名服务器代理
# 配置域名代理
server {
listen 80;
server_name test.com;
location / {
#代理的是服务器地址
proxy_pass http://localhost:8091;
}
}
什么是负载均衡
在分布式条件下,为了提高用户请求的响应能力,准备多台服务器.一起抗击高并发.需要用户通过同一个网址访问不同服务器的技术称之为负载均衡机制.
Nginx实现负载均衡
负载均衡策略----轮询
根据配置文件的顺序,依次访问tomcat服务器
# 配置域名代理
server {
listen 80;
server_name test.com;
location / {
#代理的是服务器地址
proxy_pass http://tW;
}
}
#定义多台tomcat服务器 1.轮询策略
upstream tW {
server localhost:8081;
server localhost:8082;
server localhost:8083;
}
负载均衡策略----权重
让性能更优的服务器更多的处理请求
#定义多台tomcat服务器 1.轮询策略 2.权重策略
upstream jtW {
server localhost:8081 weight=6;
server localhost:8082 weight=3;
server localhost:8083 weight=1;
}
负载均衡策略—IPHASH策略
说明: 如果需要用户与后端服务器进行绑定时,可以使用IPhash策略.
案例A: 有时用户可能做登录操作,可能将用户信息保存到session对象 中,如果这时采用轮询/权重的策略,可能访问其他的业务服务器.导致用户频繁的登录
1).IPHASH一般只做测试时用.
2).使用IPHASH可能造成负载不均的现象. 某些服务器负载压力过高.有宕机的风险.
3).使用IPHASH时,如果后端服务器宕机,则直接影响用户的使用.
4).工作中如果需要实现用户信息的共享,一般采用SSO的方式进行.用户只需一次登录就可以访问所有相互信任的应用系统
#定义多台tomcat服务器 1.轮询策略 2.权重策略
upstream jtW {
ip_hash;
server localhost:8081 weight=6;
server localhost:8082 weight=3;
server localhost:8083 weight=1;
}
Nginx属性配置
down属性
如果遇到某台tomcat服务器宕机,则可以通过down属性标识故障机,则nginx永远不会主动访问故障机.
#定义多台tomcat服务器 1.轮询策略 2.权重策略 3.ip_hash策略
upstream jtW {
#ip_hash;
server localhost:8081 weight=6 down;
server localhost:8082 weight=3;
server localhost:8083 weight=1;
}
backup 属性
backup的作用表示标识备用机. 一般情况下备用不工作.当遇到主机全部宕机/遇忙时,这时备用机才会生效.
#定义多台tomcat服务器 1.轮询策略 2.权重策略 3.ip_hash策略
upstream jtW {
#ip_hash;
server localhost:8081 weight=6 down;
server localhost:8082 weight=3 down;
server localhost:8083 weight=1 backup;
}
设定访问超时
属性说明:
1.max_fails=1 允许访问失败的最多次数
2.fail_timeout=60s 失败的超时时间(理解为时间区间)
当服务器宕机时,这时配置文件还没有被标识为down时.开启了高可用的机制. 只要失败的次数超过最大失败次数,则
在指定的时间周期之内,不会再次访问故障机.
#定义多台tomcat服务器 1.轮询策略 2.权重策略 3.ip_hash策略
upstream jtW {
#ip_hash;
server localhost:8081 max_fails=1 fail_timeout=60s;
server localhost:8082 max_fails=1 fail_timeout=60s;
server localhost:8083 max_fails=1 fail_timeout=60s;
}