NGINX作负载均衡应用案例
2018-03-13 12:28
405 查看
Nginx的负载均衡是通过upstream命令实现的,其负载均衡机制较为简单,基于内容和应用的7层交换负载均衡的实现。nginx对后端服务器有较弱的健康监测机制,但是仅限于端口检测,因此当后端服务器少于10台时,表现能力较为突出。当后端有大量节点时,由于所有访问都从一台进出,容易引发堵塞导致访问失败,因此无法充分发挥后端服务器的性能。
Nginx有如下几种调度算法:
1.轮询(默认),按照请求时间逐一分配到后端节点,健康监测触发时,自动剔除故障节点。
2.weight 手动指定轮询权值 ,weight值越大,受防几率越高,应用于后端节点性能不一的情况下。
3.ip_hash 每个请求按访问ip的哈希结果分配,来自同一个ip的访问固定访问同一个后端节点,可以有效解决动态网页存在的session共享问题
4.fair 该功能需要nginx支持upstream_fair模块,本文不做介绍
5.url_hash 按url的哈希结果按分配请求,使每一个url定向到同一个节点,可以进一步提高缓存服务器效率,默认是不支持url_hash的,需要安装nginx的hash软件包提供支持。
在http Upstream模块中。通过server命令来指定后端节点的IP地址和端口,同时还可以设定每台节点的状态,常用状态如下:
1.down 表示为当前节点不参与负载
2.backup 表示为预留的备份节点,当所有的非backup节点都出现故障时,才请求该节点。
3.max_fails 表示为允许请求失败的次数,默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误
4.fail_timeout 在经历max_fails的失败后,暂停服务的时间,可以与max_fails同时使用
注意:当负载算法为ip_hash时,后端节点状态不能是weight和backup
配置示例:(部分配置)
请求www.myupstream.com站点将跳转到nginx负载均衡后端节点,192.168.10.129:5001端口和5002端口,权重分别为1和2,
其中两台后端虚拟节点,192.168.10.129:5001跳转到百度页面,192.168.10.129:5002重定向到我的个人博客地址 http://blog.csdn.net/jeccisnd
http {
upstream newserver {
server 192.168.10.129:5001 weight=1 max_fails=3 fail_timeout=20s;
server 192.168.10.129:5002 weight=2 max_fails=3 fail_timeout=20s;
}
server
{
listen 80;
server_name www.myupstream.com;
index index.html;
location / {
proxy_pass http://newserver; proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
}
}
server
{
listen 5001;
server_name 192.168.10.129;
index index.html;
location / {
proxy_pass http://www.baidu.com/; }
}
server
{
listen 5002;
server_name 192.168.10.129;
index index.html;
location / {
rewrite ^/(.*)$ http://blog.csdn.net/jeccisnd/$1 permanent;
}
}
}
Nginx有如下几种调度算法:
1.轮询(默认),按照请求时间逐一分配到后端节点,健康监测触发时,自动剔除故障节点。
2.weight 手动指定轮询权值 ,weight值越大,受防几率越高,应用于后端节点性能不一的情况下。
3.ip_hash 每个请求按访问ip的哈希结果分配,来自同一个ip的访问固定访问同一个后端节点,可以有效解决动态网页存在的session共享问题
4.fair 该功能需要nginx支持upstream_fair模块,本文不做介绍
5.url_hash 按url的哈希结果按分配请求,使每一个url定向到同一个节点,可以进一步提高缓存服务器效率,默认是不支持url_hash的,需要安装nginx的hash软件包提供支持。
在http Upstream模块中。通过server命令来指定后端节点的IP地址和端口,同时还可以设定每台节点的状态,常用状态如下:
1.down 表示为当前节点不参与负载
2.backup 表示为预留的备份节点,当所有的非backup节点都出现故障时,才请求该节点。
3.max_fails 表示为允许请求失败的次数,默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误
4.fail_timeout 在经历max_fails的失败后,暂停服务的时间,可以与max_fails同时使用
注意:当负载算法为ip_hash时,后端节点状态不能是weight和backup
配置示例:(部分配置)
请求www.myupstream.com站点将跳转到nginx负载均衡后端节点,192.168.10.129:5001端口和5002端口,权重分别为1和2,
其中两台后端虚拟节点,192.168.10.129:5001跳转到百度页面,192.168.10.129:5002重定向到我的个人博客地址 http://blog.csdn.net/jeccisnd
http {
upstream newserver {
server 192.168.10.129:5001 weight=1 max_fails=3 fail_timeout=20s;
server 192.168.10.129:5002 weight=2 max_fails=3 fail_timeout=20s;
}
server
{
listen 80;
server_name www.myupstream.com;
index index.html;
location / {
proxy_pass http://newserver; proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
}
}
server
{
listen 5001;
server_name 192.168.10.129;
index index.html;
location / {
proxy_pass http://www.baidu.com/; }
}
server
{
listen 5002;
server_name 192.168.10.129;
index index.html;
location / {
rewrite ^/(.*)$ http://blog.csdn.net/jeccisnd/$1 permanent;
}
}
}
相关文章推荐
- Tomcat与Apache或Nginx的集群负载均衡设置及Sersync同步应用(1) 推荐
- Linux+Nginx+Tomcat+Redis实现负载均衡,应用集群及session共享
- Tomcat与Apache或Nginx的集群负载均衡设置及Sersync同步应用(2)
- Tomcat与Apache或Nginx的集群负载均衡设置及Sersync同步应用(3)
- Nginx+tomcat+memcache应用集群负载均衡安装部署说明
- Nginx反向代理、缓存、 负载均衡、upstream以及fastcgi模块应用
- Docker的安装和镜像管理并利用Docker容器实现nginx的负载均衡、动静分离 Docker的安装 一、Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用
- nginx的负载均衡及后端tomcat应用实例获取客户源IP
- Nginx负载均衡配合keepalived服务案例实战
- Nginx高级应用--负载均衡、rewrite规则
- nginx实现tomcat的负载均衡及企业内部应用的代理
- nginx实现tomcat的负载均衡及企业内部应用的代理
- 负载均衡-rides和nginx应用
- Tomcat与Apache或Nginx的集群负载均衡设置及Sersync同步应用
- 用Nginx实现Session共享的均衡负载
- tomcat+nginx+redis实现均衡负载、session共享(二)
- nginx 负载均衡 多站点共享Session
- lvs、haproxy、nginx 负载均衡的比较分析
- 用Nginx+Redis实现session共享的均衡负载
- 负载均衡----实现配置篇(Nginx)