Web负载均衡的实现方式几种方式

博客访问: 72247
博文数量: 21
注册时间:
分类: Linux操作系统 20:54:57
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。下图是HAProxy的架构:下图是HAProxy的监控页面截图:HAProxy实现了一种事件驱动,&单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。
阅读(977) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。由于网民数量激增,网络访问路径过长,用户的访问质量容易受到严重影响,尤其是当用户与网站之间的链路被突如其来的流量拥塞时。
由于网民数量激增,网络访问路径过长,用户的访问质量容易受到严重影响,尤其是当用户与网站之间的链路被突如其来的流量拥塞时。稳定性决定了应用程序能否支持不断增长的用户请求数量,它是应用程序自身的一种能力。稳定性是影响系统性能的众多因素的一种有效的测量手段,包括机群系统所能支持的同时访问系统的最大用户数目以及处理一个请求所需要的时间。尤其是网络请求具有突发性,当某些重大事件发生时,网络访问就会急剧上升,从而造成网络瓶颈随着用户访问数量的快速增加,需要对现有的服务器进行负载均衡。为了保证各台服务器的负载均匀分布,合理地分流用户,需要一种服务器负载均衡设备对Web服务器进行负载均衡。负载均衡设备介于服务器和用户端之间,扮演了一个智能的指挥者角色。根据当前各个服务器的工作状态和能力来分配服务器负载,使整个系统能更高效的响应用户的请求。
当你的Web站点负载遇过大时,就应当考虑使用负载均衡技术来将负载平均分摊到多个内部服务器上。如果有多个服务器同时执行某一个任务时,这些服务器就构成一个集群。使用集群技术可以用最少的投资获得接近于大型主机的性能。
负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它主要完成以下任务:解决网络拥塞问题,服务就近提供,实现地理位置无关性;为用户提供更好的访问质量;提高服务器响应速度;提高服务器及其他资源的利用效率;避免了网络关键部位出现单点失效。
本文以梭子鱼负载均衡机340型号以实现对五台WEB服务器的负载分担为例,简要介绍Web服务器负载均衡的实现方案。
考虑到Web服务对高并发连接数的要求,推荐使用梭子鱼负载均衡机340型号DSR路由返回模式进行拓扑。DSR模式为梭子鱼独有负载均衡工作模式,是专门针对如证券行业此种对高并发连接数有严格要求的行业开发的模式。
另外,采用2台梭子鱼340型号的负载均衡机进行堆叠部署,将340以上型号产品堆叠能够获得高性能集群,两台梭子鱼负载均衡机互为备份,并采用&心跳&技术实时监控伙伴设备是否实时可用,以提供秒级的故障切换,从而在负载均衡的同时,最大程度地提高Web服务系统的高可用性和可靠性。您可以将系统配置自动备份到FTP站点或者本地的SMB共享文件夹里面,或者能将系统备份文件备份到你的桌面,或者随时恢复这些备份文件。
梭子鱼负载均衡机是提供本地的服务器群负载均衡和容错的产品,在充分利用现有资源以及对IT基础设施进行最小变动的前提下有效地进行流量的分配,从而提高服务器的处理性能。对客户端而言,这一切都是透明的。
方案总体设计
1.将梭子鱼两台340通过双绞线直接接入交换网,在梭子鱼上通过建立虚拟IP并将后台Web服务器与其绑定来实现服务流量的分配。
2.对服务器进行回路设备的设置,可以通过脚本程序自动运行。
3.在防火墙中,设置好正确的端口映射关系。
梭子鱼解决方案的优势
多层实时的服务器健康检查:梭子鱼负载均衡机会实时地对后台服务器进行健康检查,并决定在真实服务器不可用情况下服务如何处理。梭子鱼负载均衡机服务监控机制可以通过3/4层上(PING,PORT等),以及7层(DNS,HTTP,SMTP等)来实现。
SSL加速功能:SSL和XML将占用相当的服务器资源,会影响网络的传输速度,梭子鱼负载均衡机340型号的OffLoading技术可以卸载服务器的HTTPS流量,在梭子鱼上完成解密,将服务器有限资源集中在关键任务上,大大提高了服务器性能,梭子鱼340可以支持150TPS.
高性能及强大服务器支持:可以支持多到150台服务器,支持150SSL/TPS加速,完全满足客户未来的扩展需要,为其WEB服务提供强大的性能保障。
完全冗余镜像/&心跳&技术实时监控:梭子鱼负载均衡机的冗余配置非常简单的,它们之间不需要任何的特殊电缆相连,只需要直接接入交换网络即可。当一台梭子鱼负载均衡机由于检修或故障的原因停机后,这时另一台梭子鱼负载均衡机会以最快的速度接管其工作。梭子鱼负载机秒级故障切换技术,确保了终端服务系统的不间断运行。
保证关键应用的可扩展性:梭子鱼负载均衡机与任何品牌、使用界面、操作系统的网络服务器均兼容,在安装时完全不须改变企业原有的网路架构。当您为业务扩充而更新网络服务器,新设备只要与梭子鱼负载均衡机连接,您不须费时集成新旧设备、或统合协定机制。
热门文章排行
宽带山热帖排行Keepalived+Nginx实现高可用Web负载均衡 - 简书
Keepalived+Nginx实现高可用Web负载均衡
一、需求场景:
Paste_Image.png
通过之前的一篇文章:
,我们已经能通过Nginx来实现Tomcat应用的负载均衡,但是单个的Nginx会存在单点隐患,如果Nginx挂掉,那么全部的Tomcat应用都将变得不可用,所以实现Nginx的高可用是必不可少的一步。
二、Keepalived 简要介绍
Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务的高可用。
Keepalived 以 VRRP 协议为实现基础,用 VRRP 协议来实现高可用性(HA)。VRRP(Virtual RouterRedundancy Protocol)协议是用于实现路由器冗余的协议,
VRRP 协议将两台或多台路由器设备虚拟成一个 设备,对外提供虚拟路由器 IP(一个或多个),而在路由器组内部,如果实际拥有这个对外 IP 的路由器如果工作正常的话就是 MASTER,
或者是通过算法选举产生,MASTER 实现针对虚拟路由器 IP 的各种网络功能, 如 ARP 请求,ICMP,以及数据的转发等;其他设备不拥有该虚拟 IP,状态是 BACKUP,
除了接收 MASTER 的 VRRP 状态通告信息外,不执行对外的网络功能。当主机失效时,BACKUP 将接管原先 MASTER 的网络功能。
VRRP 协议使用多播数据来传输 VRRP 数据,VRRP 数据使用特殊的虚拟源 MAC 地址发送数据而不是自身 网卡的 MAC 地址,VRRP 运行时只有 MASTER 路由器定时发送 VRRP 通告信息,
表示 MASTER 工作正常以及虚 拟路由器 IP(组),BACKUP 只接收 VRRP 数据,不发送数据,如果一定时间内没有接收到 MASTER 的通告信 息,各 BACKUP 将宣告自己成为 MASTER,
发送通告信息,重新进行 MASTER 选举状态。
三、环境以及方案规划
Paste_Image.png
四、Nginx的安装(在192.168.31.146和192.168.31.154中分别安装Nginx,安装用户:root)
1、安装编译Nginx所需要的依赖包
# yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel
2、上传Nginx(nginx-1.6.2.tar)到/usr/local/src目录
3、编译安装Nginx
进入Nginx的上传目录:
# cd /usr/local/src/
解压安装包:
# tar -zxvf nginx-1.6.2.tar.gz
进入解压后的文件夹:
# cd nginx-1.6.2
指定编译位置:
# ./configure --prefix=/usr/local/nginx
# make && make install
4、配置Nginx
通过修改/conf/nginx.conf文件来修改Nginx的配置信息
# vi /usr/local/nginx/conf/nginx.conf
5、系统防火墙中打开对应的端口80(默认80)
# vi /etc/sysconfig/iptables
## nginx -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
添加后重启防火墙:
# service iptables restart
6、检测Nginx的配置文件是否正确。建议每次修改/conf/nginx.conf文件之后,都手动执行该命令以检测此次修改的正确性
# /usr/local/nginx/sbin/nginx -t
出现以下信息,代表成功
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
7、启动Nginx
# /usr/local/nginx/sbin/nginx
通过可以访问nginx的默认页面
Paste_Image.png
查看Nginx进程
# ps -ef|grep nginx
# /usr/local/nginx/sbin/nginx -s stop
# /usr/local/nginx/sbin/nginx -s reload
8、设置Nginx开机启动
编辑/etc下的rc.local文件
# vi /etc/rc.local
/usr/local/nginx/sbin/nginx
五、Keepalived的安装
1、上传或下载 keepalived(keepalived-1.2.18.tar.gz)到 /usr/local/src 目录
2、解压安装
进入安装包目录:
# cd /usr/local/src/
# tar -zxvf keepalived-1.2.18.tar.gz
进入解压后的目录:
# cd keepalived-1.2.18
指定编译路径:
# ./configure --prefix=/usr/local/keepalived
编译安装:
# make && make install
3、将keepalived安装成Linux系统服务
因为没有使用keepalived的默认路径安装(默认是/usr/local),安装完成后,需要手动复制默认的配置文件到默认路径
# mkdir /etc/keepalived
# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
复制keepalived服务脚本到默认的地址
# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# ln -s /usr/local/sbin/keepalived /usr/sbin/
# ln -s /usr/local/keepalived/sbin/keepalived /sbin/
设置keepalived服务开机启动
# chkconfig keepalived on
4、修改keepalived配置文件
# vi /etc/keepalived/keepalived.conf
配置说明:
&pre&&code&
! Configuration File for keepalived
global_defs {
keepalived 自带的邮件提醒需要开启 sendmail 服务。建议用独立的监控或第三方 SMTP
router_id edu-proxy-01 ## 标识本节点的字条串,通常为 hostname }
keepalived 会定时执行脚本并对脚本执行的结果进行分析,动态调整 vrrp_instance 的优先级。如果 脚本执行结果为 0,并且 weight 配置的值大于 0,则优先级相应的增加。如果脚本执行结果非 0,并且 weight 配置的值小于 0,则优先级相应的减少。其他情况,维持原本配置的优先级,即配置文件中 priority 对应 的值。
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" interval 2 ## 检测时间间隔
weight -20 ## 如果条件成立,权重-20
检测 nginx 状态的脚本路径
定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
state MASTER ## 主节点为 MASTER,对应的备份节点为 BACKUP
interface eth1 ## 绑定虚拟 IP 的网络接口,与本机 IP 地址所在的网络接口相同,我的是 eth1 virtual_router_id 51 ## 虚拟路由的 ID 号,两个节点设置必须一样,可选 IP 最后一段使用, 相同的 VRID 为一个组,他将决定多播的 MAC 地址,eth1值的获取可以在机器上执行ifconfig命令得到
mcast_src_ip 192.168.1.51 ## 本机 IP 地址
priority 100 ## 节点优先级,值范围 0-254,MASTER 要比 BACKUP 高 nopreempt ## 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题 advert_int 1 ## 组播信息发送间隔,两个节点设置必须一样,默认 1s ## 设置验证信息,两个节点必须一致
authentication {
auth_type PASS
auth_pass 1111 ## 真实生产,按需求对应该过来 }
将 track_script 块加入 instance 配置块
track_script {
chk_nginx ## 执行 Nginx 监控的服务
虚拟 IP 池, 两个节点设置必须一样
virtual_ipaddress {
192.168.1.50 ## 虚拟 ip,可以定义多个
} }&/code&&/pre&
192.168.31.146(MASTER节点)的keepalived.conf
! Configuration File for keepalived global_defs { router_id dreyer-zk-03 } vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" interval 2 weight -20 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 146 mcast_src_ip 192.168.31.146 priority 100 nopreempt advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_nginx } virtual_ipaddress { 192.168.31.111 } }
192.168.31.154(BACKUP节点)的keepalived.conf
! Configuration File for keepalived global_defs { router_id dreyer-zk-01 } vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" interval 2 weight -20 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 146 mcast_src_ip 192.168.31.154 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_nginx } virtual_ipaddress { 192.168.31.111 } }
nginx_check.sh(Nginx状态检测脚本)
#!/bin/bash A=ps -C nginx –no-header |wc -lif [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx sleep 2 if [ps -C nginx --no-header |wc -l-eq 0 ];then killall keepalived fi fi
脚本大意为:检查是否有nginx进程,如果没有,那么就启动nginx,启动后睡眠2秒,再检查是否有nginx的进程,如果没有的话,那么就杀掉keepalived的全部进程(杀掉进程后keepalived才能进行重新选举)
6、启动keepalived
# service keepalived start
出现以下,代表启动成功
Starting keepalived: [ OK ]
7、进行高可用测试
7.1、关于虚拟IP
在192.168.31.146中执行ip add命令查看
[root@MiWiFi-R1CM sbin]# ip add 1: lo: &LOOPBACK,UP,LOWER_UP& mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: &BROADCAST,MULTICAST,UP,LOWER_UP& mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:34:1c:e2 brd ff:ff:ff:ff:ff:ff inet 192.168.31.146/24 brd 192.168.31.255 scope global eth0 inet 192.168.31.111/32 scope global eth0 inet6 fe80::20c:29ff:fe34:1ce2/64 scope link valid_lft forever preferred_lft forever
在192.168.31.154中执行ip add命名查看
[root@MiWiFi-R1CM conf]# ip add 1: lo: &LOOPBACK,UP,LOWER_UP& mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: &BROADCAST,MULTICAST,UP,LOWER_UP& mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:64:3d:2a brd ff:ff:ff:ff:ff:ff inet 192.168.31.154/24 brd 192.168.31.255 scope global eth0 inet 192.168.31.111/32 scope global eth0 inet6 fe80::20c:29ff:fe64:3d2a/64 scope link valid_lft forever preferred_lft forever
从输出信息中,我们可以知道146和154机器上都有192.168.31.111这个虚拟IP,这个IP是由keepalived虚拟出来的(keepalived.conf中有配置),关掉一台机器的keepalived再执行ip add命令,那么192.168.31.111这个虚拟IP将不存在。我们可以通过192.168.31.111这个虚拟IP来访问146和154这两台机器,其中哪台机器是master,虚拟IP就会映射到哪个地址。
7.2、我们修改两个nginx的首页信息,在首页中加入各自的IP地址
# vi /usr/local/nginx/html/index.html
7.3、高可用切换
Paste_Image.png
我们可以看到由于146被我们设置为master,所以192.168.31.111这个虚拟IP会漂移到146这台机器上,那我们把146的keepalived关掉再看。
停止keepalived:
# service keepalived stop
Paste_Image.png
这个时候192.168.31.111这个虚拟IP已经漂移到154这个机器上了。
那如果我们再将146的keepalived启动,那192.168.31.111就会漂移到146这个机器上。
结论:通过keepalived来实现同一个虚拟IP映射到两台Nginx代理服务器,如果主服务器挂掉或者主服务器的keepalived挂掉又或者主服务器的Nginx挂掉(Nginx挂掉后会杀死keepalived的进程,在脚本中有控制)那从服务器的keepalived会检测到并会接管原先MASTER的网络功能,这种方式来实现Nginx的高可用性(如上文中的keepalived简要介绍)
8、关于Nginx实现Tomcat应用的负载均衡可以参考另一篇文章:
个人博客地址:http://dancing-robots.vip/
一、场景需求 解决Nginx的高可用集群问题 1、 阿里云: SLB 2、 硬件负载均衡器(如: F5、 Radware) 3、 软件方式实现高可用或负载均衡 Keepalive、 LVS…… 二、Keepalived 简要介绍 Keepalived 是一种高性能的服务器高...
一、场景需求 二、Keepalived 简要介绍 Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务的高可用。 Keepalived 以 VRRP 协议为实...
负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行。关于负载均衡介绍,可以参考:linux负载均衡总结性说明(四层负载/七层负载)由于业务扩展,网站的访问量不断加大,负...
来自:MrLinFeng - 博客园链接:www.cnblogs.com/mrlinfeng/p/6146866.html 相关知识自行搜索,直接上干货。。。 使用的资源:nginx 主服务器一台,nginx 备服务器一台,使用 keepalived 进行宕机切换。tomc...
1 、背景介绍
为了实现tomcat应用服务高可用和系统负载均衡分发问题。我们采用开源组件NGINX做负载均衡分发到tomcat应用服务器,而保障了应用服务器高可用的同时NGINX单机存在单点故障,假如NGINX服务器挂了,那么所有的服务也会跟着瘫痪 。最终决定采用ke...
“天下无不是的父母,只有不是的儿女。”虽然这句话说的绝对了些,但这并不无道理。刚看过《摔跤吧爸爸》的我感触颇多,当身为摔跤手的爸爸,为了让女儿完成他的梦想,不顾一切人的反对,也不管村里其他人的嘲讽,带领自己的女儿踏上了摔跤手的征程。对女儿来说且不说训练的痛苦,就是因为少了一...
直接上表格,不过课件标题还在酝酿中。 还有,这个表格是武电培训中心的通用版,今天先请李老师和仙女们指导,明天准备尝试用娘娘的“五线谱”试试。 日
时间过得真的好快,不知不觉加入了玩练口才60秒一个月了,有收货,有快乐 。 记得第一次直播的时候心里还是蛮紧张,但有紧张感就会有动力感。要走出舒适区,我参加过2次荔枝和2次qq直播,每次直播都在进步,还有教练的点评,以及其他的小伙伴的点评,不足的点评出来,下次注意。只要每天...
嗨,,,愿生活的美好让我们时刻学会活在当下,,学会感恩生活,褪去疲惫的身影静静端坐,插着耳机聆听着舒缓的轻音乐,开启今天的文章推送,,这篇文章我想送给我的工作伙伴孟繁朗,,感谢生命的每一份美好,感谢遇见,感谢缘分让你我相识相知,, 今天的一整天由早晨的焦躁,,心绪不宁一直持...
打开某度,输入熬夜,弹出来的一定是熬夜,不好。但是,我喜欢熬夜,不是说我要和我自己过不去,其实是为了那份不可多得的安静。 熬夜开始于初中,初中是个变态学校,作业多得如山,是真的如山。或许是在青春的叛逆期,总觉得父母唠唠叨叨个没完,写个作业不停慰问,到了十点必须睡觉,就好像是...豆丁微信公众号
君,已阅读到文档的结尾了呢~~
WEB服务器负载均衡技术研究WEB服务器
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
WEB服务器负载均衡技术研究
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口为websocket应用实现负载均衡 - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
&br/&websocket相信经常逛cnode社区的孩纸们都知道…具体API使用方式也再熟悉不过了…使用nodejs开发的websocket服务端也是品种繁多…github上总有你喜欢的…平时耍耍当然没问题…如果真要是承载一个生产环境服务的核心…总会有些问题需要你去解决.
&br/&不可避免的问题:
&br/&按照一个web请求占用线程数为参照…我们可以把nodejs称之为单线程语言…而java的servlet这种应该就是多线程语言了…我们可以想象在高并发情况下…单线程语言的运行风险还是蛮高的…毕竟如果一个请求出事那么整个线程(进程)就退出了…于是乎停止服务了…为了规避风险…我们常常会使用负载均衡技术…保证整个系统的对外正常服务…
&br/&解决方案:
&br/&负载均衡方案目前来讲…用apache的也不多了吧…普遍的解决方案是使用nginx配置多个upstream.实现负载均衡…例子如下:
&br/&&pre&http{
&br/&upstream http_sr {
server 192.168.0.2:8080;
server 192.168.0.3:8080;
&br/&server {
listen 80 ;
proxy_pass http_
&br/&}&/pre&
&br/&这样对于部署在&span class=“Apple-style-span” style=“font-family: Consolas, Monaco,font-size: 12line-height: 18px”&192.168.0.2和3这两台机器上http服务…就通过这台nginx服务器实现了负载均衡…&/span&但是websocket的服务端nginx的http反向代理是不能支持的.从websocket的&a href=&&&specs&/a&我们可以很明确的其实基于tcp协议的…http协议虽然也是基于tcp…它们都使用了tcp的握手方式…但是nginx的http_proxy_pass是不能支持websocket的…
&br/&于是我们可以寻根问主…让nginx支持tcp_proxy_pass…那websocket负载均衡的问题不就迎刃而解了…nginx有丰富的第三方扩展…一顿搜索在github上找到了yaoweibin老师的&a href=“”&nginx_tcp_proxy_module&/a&
&br/&二话不说下载此模块…重新编译nginx(此过程略吧大家应该都懂) …修改nginx配置文件加入下面conf:
&br/&&pre&tcp {
upstream websocket {
server 192.168.0.2:8080;
server 192.168.0.3:8080;
check interval=3000 rise=2 fall=5 timeout=1000;
listen 80;
&br/&}&/pre&
&br/&这个module的作者在description写到:
&br/&&pre& The motivation of writing these modules is Nginx’s high performance and
robustness. At first, I developed this module just for general TCP
proxy. And now, this module is frequently used in websocket reverse
proxying.&/pre&
&br/&目前基本就是用来做websocket反向代理的…测试后确实是支持的…非常感谢module的开发者另外值得注意的是你要在nginx里同时配置tcp和http…那么它们是不能listen同一端口的…
推荐用HAProxy作为80端口的代理http://stackoverflow.com/questions/4360221/haproxy-websocket-disconnection/7648
新的websocket规范不是已经去掉了导致websocket 不能通过目前http proxy的握手协议?是不是现在已经可以直接用nginx而不需要这个扩展了?
这货的性能如何?可有压测数据?
location / {
proxy_connect_timeout 60;
proxy_set_header Host $
proxy_set_header X-Real-IP $remote_
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
proxy_set_header X-NginX-P
# 下面是关键
proxy_http_version 1.1;
proxy_set_header Upgrade $http_
proxy_set_header Connection &upgrade&;
# 这是配置webpysessoin丢失的问题
fastcgi_param
SCRIPT_NAME
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的

我要回帖

更多关于 负载均衡方式 的文章

 

随机推荐