LB集群之nginx

上篇文章讲了LVS的负载均衡:http://1015489314.blog.51cto.com/8637744/1700710

这篇文章讲nginx的负载均衡,它实际上和nginx的代理是同一个功能,只是把之前代理一台机器改为代理多台机器而已。nginx 的负载均衡和LVS相比,nginx属于更高级的应用层,不牵扯到 IP 和内核的改动,它只是单纯地把用户的请求转发到后面的机器上。这就意味着,后端的rs不需要配置公网 IP。

一、nginx代理实现集群



1、准备工作

准备三台机器

nginx 分发器(一个公网 ip192.168.1.109 和一个内网 ip192.168.0.109)。

rs1 只有内网 ip(192.168.0.112)

rs2 只有内网 ip(192.168.0.113)

同时,三台机器都要安装nginx,并开启。

# yum install -y nginx   //若没有,可先安装epel扩展源:epel-release

# /etc/init.d/nginx start

2、配置

在 nginx 分发器上编辑配置文件

[[email protected] ~]# vim /usr/local/nginx/conf/vhosts/lb.conf   //加入如下内容

upstream test {

ip_hash;

server 192.168.0.112;

server 192.168.0.113;

}

server {

listen 80;

server_name www.tpp.com;

location / {

proxy_pass http://test/;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

重启nginx

[[email protected] ~]# /etc/init.d/nginx restart

在rs1和rs2上配置

我们修改下nginx的默认页面

rs1上

echo "rs1 nginx" > /usr/share/nginx/html/index.html

rs2上

echo "rs2 nginx" > /usr/share/nginx/html/index.html

3、测试

首先rs1和rs2都要关闭防火墙

# iptables -F

然后在nginx分发器上执行测试命令

[[email protected] ~]# curl -xlocalhost:80 www.tpp.com

rs1 nginx

[[email protected] ~]# curl -xlocalhost:80 www.tpp.com

rs2 nginx

[[email protected] ~]# curl -xlocalhost:80 www.tpp.com

rs1 nginx

[[email protected] ~]# curl -xlocalhost:80 www.tpp.com

rs2 nginx

[[email protected] ~]# curl -xlocalhost:80 www.tpp.com

rs1 nginx

[[email protected] ~]# curl -xlocalhost:80 www.tpp.com

rs2 nginx

二、根据访问的目录来区分后端的web



需求:当请求的目录是 /aaa/ 则把请求发送到机器rs1,除了目录/aaa/外,其他的请求发送到机器rs2.

在分发器上配置

upstream testa {

server 192.168.0.112;

}

upstream testb {

server 192.168.0.113;

}

server {

listen 80;

server_name www.tpp.com;

location /aaa/{

proxy_pass http://testa/aaa/;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

location /{

proxy_pass http://testb/;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

注意:

1)以上配置文件中的 test、testa 以及 testb 都是自定义的,随便写。

2)proxy_pass http://testa/aaa/这里必须要加这个目录,不然就访问到根目录了。

3)根据访问的目录来区分后端的web,这个LVS是做不到的。

时间: 2024-08-02 06:34:48

LB集群之nginx的相关文章

linux系统构架 - LB集群之LVS介绍

LB 集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有 nginx.lvs.keepalived ,商业的硬件负载设备 F5.Netscale. LB 集群的架构如下图,原理也很简答,就是当用户的请求过来时,会直接发到分发器(Director Server)上,然后它把用户的请求根据预先设置好的算法,智能均衡地分发到后端的真正服务器(real server)上.如果不同的机器,可能用户请求到的数据不一样,为了避免这样的情况发生,所以用到了共享存储

负载均衡集群介绍(LB集群)、 LVS介绍、LVS NAT模式、LVS DR模式

负载均衡集群介绍(LB集群) LB集群是load balance集群的简写,翻译成中文就是负载均衡集群 负载均衡的原理就是当用户的请求过来时,会直接发到分发器上,然后它把用户的请求根据预先设置好的算法,只能均衡的分发到后端真正的服务器上.如果不同的机器,可能用户请求到的数据不一样,为了避免这样的情况发生,所有用到了共享存储,这样保证所有的用户请求的数据是一样的 主流开源软件LVS.keepalived.haproxy.nginx等 其中LVS属于4层(网络OSI 7层模型),nginx属于7层,

Haproxy部署网站LB集群

前言:lvs和haproxy的区别 lvs: 1.抗负载能力强.是工作在网络4层之上仅作分发之用,没有流量的产生; 2.无流量,保证了均衡器IO的性能不会收到大流量的影响: 3.应用范围比较广,因为LVS工作在4层,所以它几乎可以对所有应用做负载均衡 4.工作稳定,因为其本身抗负载能力很强,自身有完整的双机热备方案, 如LVS+Keepalived,不过我们在项目实施中用得最多的还是LVS/DR+Keepalived. Haproxy: 1.HAProxy也是支持虚拟主机的 HAProxy跟LV

CentOS Linux 负载均衡高可用WEB集群之Nginx+Keepalived配置

Nginx+Keepalived实现负载均衡高可用的WEB服务集群,nginx作为负载均衡器,keepalived作为高可用,当其中的一台负载均衡器(nginx)发生故障时可以迅速切换到备用的负载均衡器(nginx),保持业务的连续性. 1.服务器的环境配置及IP分配 操作系统:CentOS release 6.7 (Final) nginx版本:nginx/1.8.0 keepalived版本:Keepalived v1.2.13 Nginx + keepalived服务器的IP分配表 服务器

配置LVS/DR模式的LB集群

集群与存储 Day2 配置LVS/DR模式的LB集群1 配置网站服务器 51/521.1 配置VIP地址[[email protected] ~]# ifconfig lo:1 192.168.4.252/32[[email protected] ~]# ifconfig lo:1 1.2 修改网络接口运行参数/proc/sys/net/ipv4/conf[[email protected] conf]# echo 1 > lo/arp_ignore [[email protected] con

LB集群之LVS/keepalived

在上一个实验的基础上LVS/DR (NTA,DR HA 都是用 nginx 服务操作的,省去了安装nginx安装配置) lvs虽然已经配置成功也实现了负载均衡,但是我们测试的时候发现,当某台real server把httpd进程停掉,那么director照样会把请求转发过去,这样就造成了某些请求不正常.所以需要有一种机制用来检测real server的状态,这就是keepalived.它的作用除了可以检测rs状态外,还可以检测备用director的状态,也就是说keepalived(集HA+LB

Linux系统架构(LB-HA集群)-nginx负载均衡集群配置

nginx负载均衡集群配置 [[email protected] ~]# cd/usr/local/nginx/conf/vhosts/ [[email protected] vhosts]# ls default.conf  test.conf [[email protected] vhosts]# vim lb.conf upstream wang { server 192.168.137.21:80; server 192.168.137.23:80; } server { listen

Centos Keepalived-Ha集群+Lvs-DR+Nginx集群配置

背景介绍 我们都知道一台服务器能提供的资源是有限的,如果想打破这个限制,只有两个办法,一个是购买硬件,提升服务器性能,但是性价比过高,而第二种方法这则是,使用集群软件让两台服务器处理一个服务的不同请求,分带单台服务器的负载,从而提升性能,实现这一的软件开源著名的有Nginx或者Lvs,这里我们使用的是LVS,但是lvs需要一个调度服务器,这样调度服务器就是一个集训的单点故障,一旦调度服务器出现故障,整个集群便崩溃,所以我们需要两台调度节点,一旦一个调度节点损坏,那么另一台调度节点开始工作,这里我

JBOSS EAP实战(2)-集群、NGINX集成、队列与安全

JBOSS HTTP的Thread Group概念 JBOSS是一个企业级的J2EE APP Container,因此它和任何一种成熟的企业级中间件一样具有Thread Group的概念.所谓Thread Group就是一个HTTP队列机制,利用Thread Group在JBOSS内可以设置如"阻断","升级","降级"等机制.来看一个这样的实际应用场景:当你的JBOSS连着一堆核心应用时,此时突然你的HTTP的并发请求在某一个点激增,如果把这些