Nginx(三):负载均衡策略 与 Nginx静态服务器
相关阅读:
Nginx使用最多的三个核心功能是反向代理、负载均衡和静态服务器。在前面的博客中,我们已经介绍过Nginx的反向代理功能能,这篇博客主要介绍nginx的负载均衡策略,以及作为静态服务器的使用。
所谓负载均衡,就是在大数据量高并发访问的情况下,原本一台Nginx代理的服务器已经显得吃力,不论在性能、响应速度等都显得力不从心,所以需要对后台服务器做负载均衡,缓解一台或几台服务器的高并发请求压力。
一、Nginx的负载均衡策略:
1、加权轮询算法(默认):
按照接收的请求顺序 逐一分配到不同的后端服务器,即使在使用的过程中,某一台后端服务器宕机,nginx会自动将该后端服务器剔除,请求受理情况不会受到任何影响。存在session丢失的问题。
upstream backserver {
server 192.168.0.14;
server 192.168.0.15;
}
在这种方式下,可以给不同的后端服务器设置权重值weight,用于调整不同的服务器上的请求的分配率;权重数据越大,被分配到的请求的几率越大;适合用于后端服务器性能不均衡的情况。
upstream backserver {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
2、与IP地址绑定 ip_hash:
每个请求 按照 发起请求的客户端的ip的hash结果进行分配,在这种算法下,每个ip请求都会访问到一个固定的后端服务器。可以再一定程度上解决集群部署环境下session共享的问题。
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
3、fair智能调整调度算法:
智能调整调度算法,动态根据后端服务器处理请求的响应时间进行均衡分配,响应时间段处理效率高的服务器 分配到请求的概率高,响应时间长处理效率低的服务器分配到请求的概率低。nginx本身不支持fair算法,需要安装upstream_fair模块。
upstream backserver {
server server1;
server server2;
fair;
}
4、url_hash:
按照访问的url 的hash结果分配请求,每个请求的url都会指向后端固定的某台服务器。在nginx作为静态服务器的情况下 可以提高后端服务器的缓存效率。nginx默认不支持这种调度算法,要使用的话需要安装nginx的hash软件包。
upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
二、Upstream支持的状态参数:
在Nginx的Upstream模块中,除了可以通过server指定到特定服务器和端口,还可以设置服务器在负载均衡中的状态。目前的状态如下:
1、down:代表当前的服务器server不参与负载均衡。
2、backup:预留的备用设备,也就是当其它的服务器故障或忙时才会分配它给客户请求,所以它的压力最小。
3、max_fails:服务器server允许请求失败的次数,默认为1次,当失败次数超过限定的次数,就会返回proxy_next_upstream错误信息。
4、fail_timeout:当经历了max_fails的次数后,暂停服务的时间,一般与max_fails配合使用。
注意:
当服务器的调度算法为ip_hash时,服务器在负载均衡中的状态不能是weight和backup。
三、搭建nginx静态文件服务器:
本部分内容基于Centos7系统。
(1)进入配置文件目录:
cd /usr/local/nginx/conf/
(2)在nginx的默认配置文件中进行配置:
vim nginx.conf
需要把nginx的根目录指向上传文件的目录:按下面代码修改root的目录路径,然后保存退出。
server {
listen 80;
server_name localhost;#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /home/servicemarketpic/serviceMarket;
index index.html index.htm;
}
(3)重新加载nginx配置文件:
./nginx -s reload
阅读更多
- Nginx在局域网中使用ip_hash负载均衡策略,访问全部分发到同一个后台服务器
- Nginx在局域网中使用ip_hash负载均衡策略,访问全部分发到同一个后台服务器
- 详解Nginx服务器之负载均衡策略(6种)
- nginx + tomcat 实现负载均衡和服务器集群
- 使用Nginx实现负载均衡的策略
- Nginx服务器搭建, 反向代理, 负载均衡, 状态监控
- Nginx(补充学习1:nginx负载均衡策略)
- nginx实现集群服务器的负载均衡
- nginx做反向负载均衡后端服务器获取真实客户端IP
- nginx反向代理服务器 并实现负载均衡
- Nginx(补充学习1:nginx负载均衡策略)
- nginx做负载均衡,验证码总是不对(2台服务器)
- nginx的负载均衡策略
- Nginx 做负载均衡的几种轮询策略
- nginx反向代理服务器地址重写、负载均衡、证书认证、虚拟主机
- nginx做反向负载均衡,后端服务器获取真实客户端ip
- Nginx负载均衡多节点静态资源转发(单节点没有资源)处理
- nginx做负载均衡时其中一台服务器挂掉宕机时响应速度慢的问题解决
- Centos配置多个tomcat服务器,并用nginx实现负载均衡
- [转]Nginx 做负载均衡的几种轮询策略