Nginx负载均衡的详细配置及使用案例详解

上传人:mar****e6 文档编号:153630997 上传时间:2022-09-19 格式:DOCX 页数:31 大小:541.55KB
收藏 版权申诉 举报 下载
Nginx负载均衡的详细配置及使用案例详解_第1页
第1页 / 共31页
Nginx负载均衡的详细配置及使用案例详解_第2页
第2页 / 共31页
Nginx负载均衡的详细配置及使用案例详解_第3页
第3页 / 共31页
资源描述:

《Nginx负载均衡的详细配置及使用案例详解》由会员分享,可在线阅读,更多相关《Nginx负载均衡的详细配置及使用案例详解(31页珍藏版)》请在装配图网上搜索。

1、Nginx负载均衡的详细配置及使用案例详解.技术无止境,我们仍需努力!1, 话不多说,这里我们来说下很的负载均彰那么什么是负载均衡 呢?由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流 量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务 器设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件 升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提 升时,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的 设备也不能满足当前业务量增长的需求。针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设 备和服务器的带宽、增加吞吐量、加强网络数据处理

2、能力、提高网络的 灵活性和可用性的技术就是负载均衡(Load Balance)。2, 负载均衡的种类1) 一种是通过硬件来进行解决常见的硬件有NetScaler、F5、Radware 和Array等商用的负载均衡器,但是它们是比较昂贵的2) 一种是通过软件来进行解决的,常见的软件有LVS、Nginx、apache 等,它们是基于Linux系统并且开源的负载均衡策略.3, 这里我们只来说Nginx(其他的大家有趣可以自行查阅相关文档)Nginx (发音同engine x )是一款轻量级的Web服务器/反向代理服 务器及电子邮件(IMAP/POP3 )代理服务器,并在一个BSD-like协 议下发

3、行。由俄罗斯的程序设计师Igor Sysoev(伊戈尔西索夫)所开发, 供俄国大型的入口网站及搜索引擎Rambler(漫步者)(俄文:PaMSne P)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能 力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用 户有:新浪、网易、腾讯等。优点:1:可运行linux,并有Windows移植版。2:在高连接并发的情况下,Nginx是Apache服务器不错的替代品 Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能 够支持高达50,000个并发连接数的响应4,创两台Nginx服务器由于自己在自己电脑上搭建 所以现

4、在只模拟搭建两台Nginx服务 器.负载均衡的功能:转发故障移除恢复添加高可用Ha我们想要使用Nginx那么就必须满足上面的四个条件.我们配置负载均衡的目的是在于当用户访问我们的服务器的时候 首先 会通过Nginx服务器来决定转发到哪个Tomcat服务器上去给用户提 供服务,当然这个概率是我们通过权重来配置的.经过Nginx指派之后, 我们就可以处理高并发的访问了,这里就能达到负载均衡的目的.5,搭建 Nginx首先我们需要大家两台机器 两台机器分别安装了 Nginx和Tomcat,IP 分别为:192.168.200.129. 192.168.200.130百 CentOSOl X | Ce

5、ntOS02omputerrootl ocalhost: */De s kto pFile Edit View Search Terminal Help MBWWM |troottaiocalhost Desktop# if configethl Link encap:Ethernet HWadd 66:6C:29:EE:87:: inet add192.168 2G0 .129 Beast:192.168 20( inet6 addr: fe80:20c:29ff:feee:8775/64 Sco| UP BROADCAST RUNNING MULTICAST MTU;1500 Mi RX

6、packets:42 errors:。 dropped:0 overruns:6 TX packets:49 errors: dropped: overruns: collisions:6 txqueuelen:1666 RX bytes:5G31 (4.9 KiB) TX bytes:4198 (4.G Interrupt:19 Base address;0x20241 ciI i rlc pnrAn -1 ccnharklications Places System 妲)峻 顶Zomputer回rootl&c a 1 host:-/De s kt op1Ed:: V.ew?l r , +

7、i. _ i.十Search Terminal Helpethlofs HomeTrashLink enwp;Ethernet HWed,r 0O;OC;29; 1F;67; Met add: 192.168.200.13。| Beast: 192.168.26 inet6 addr: Te80:26c:29ff:felf:6712/64 See UP BROADCAST RUNNING MULTICAST MTU:1500 V RX packets:41 errors;。 dropped;。 overruns;。 TX packets:49 errors: dropped: overruns

8、:6 collisions:0 txqueuelen:1060RX bytes:4720 (4.6 KiB) TX bytes:4150 (4.6 Interrupt:19 Base address:6x2624接着我们需要将Nginx和Tomcat包分别拷贝到CentOS01和 CentOS02上,并且解压好,这里就不再复述这个过程了.然后我们需要关闭Linux的防火墙 否则的话启动了 Nginx也是连接不 上的.Erootlocalhost src# sh apache-tomcat-7?0* Usingusing Using Using Using cat-7.047/bin/tomca

9、t-j.u 1J n.jarrootSlocalhost src# service iptables stop iptabl es : Flushing f 1 rewal 1 rulesl iptables: Setting chai iptables : unloading modules : Erootlocalhost i ptables root!ocalhost root!ocalhost iptables root!ocalhostCATALINA_BASE:/usr/1ocal/src/apacheCATALINA_HOME:/usr/1ocal/src/apacheCATAL

10、INA_TMPDIR: /usr/1ocal/src/apacheJRE_HOME:/usr/1ocal/java/jdkl.CLASSPATH:/usr/1ocal/src/apachlarns to policy ACCEPT: fsrc# 0 :off src# src# 0 :off src#chkconfig1: offchkconfigchkconfig1: offiptables2:on 3:on iptables off iptables -I 2:off 3:of我们还是来再看下解压吧:-rw-i -rw-ri-rw- rr 奸囚乂广一乂一乂arwxr-xr-xdrwcr-x

11、r-j(irwxr-xr-xirwxr-xr-xroot ro-ot got root root root root root rootroot root rqqtroot root rootroot root rootroaWlocal host -# tar39343 Dec 9W Det 13943702 May 4096 Dec 832104 Mar 409S Dec4095 Dee4096 Dec Due -2xvf nginy-12222 22222Q1420142014201410:162014201420142014i nstil 1 . logi nstl 1. Img, s

12、ysl og jk-7u55_liiu-i586, tsnginx-1.8.0.tar.gzD.tar.gs -C /usr/local/src/|rT g2解压完之后我们需要编译安装:./configure -prefix=/usr/local/nginx -pid-path=/var/run/nginx/nginx.pid -lock-path=/var/lock/nginx.lock -error-log-path=/var/log/nginx/error.log -http-log-path=/var/log/nginx/access.log -with-http_gzip_stati

13、c_module -http-client-body-temp-path=/var/temp/nginx/client -http-proxy-temp-path=/var/temp/nginx/proxy 10-http-fastcgi-temp-path=/var/temp/nginx/fastcgi 11-http-uwsgi-temp-path=/var/temp/nginx/uwsgi 12-http-scgi-temp-path=/var/temp/nginx/scgi注意:上边将临时文件目录指定为/var/temp/nginx ,需要在/var下创建temp及nginx目录mkd

14、ir -p /var/temp/nginx3 H J J J J I Jfoctlocalhost nginx-1.S.0# mkdi r -p /var/temp/nginxootlocalhost nginx-1.8.0# 11 /var/temp/nginx/ total 0rootlocalhost nginx-1,8,0#生成了文件夹后我们直接拷贝上面的编译安装命令进行安装.执行完上诉步岫 我们可以看到nginx目录下生成了 Makefile文件, 我们接着往下:rootlocalhost src# cd nginx-1.8.0rootglocalhost nglnx-1.8.0#

15、11 total 660drwxr-xr-x. 6166110014096Sep1013:36-rw-r-r-. 110011001249124Apr212015CHANGES-rw-r-r-. 110011001379021Apr212015CHANGES.rudrwxr-xr-x. 2100110014096Sep1013:36-rwxr-xr-x. 1100110012478 Apr212015configuredrwxr-xr-x. 4160110014096 Sep1013:36drwxr-xr-x. 2ieoi10014096Sep1013:36-rw-r-r-. 11001100

16、11397 Apr212015LICENSE-rw-r-r-. 1rootroot345Sep1013:42Hakefiledrwxr-xr-x. 2100110014096Sep1013:36drwxr-xr-x. 3rootroot4096Sep1013:46-rw-r-r-. 11001100149Apr212015READMEdrwxr-xr-x. 8100110014096Sep1013:36rootlocalhost nginx-1.8.0# pwd/usr/local/src/nginx-1.8 0然后使用Make命令,运行结束后在使用Make install命令进行安装, 最后

17、是启动Nginx:I-I8。蒿lo*lhest lx皿一 】tt 【roolQcollhQ% 3ginxJ1t gsl 12 drMxrlxrlx drMxrlxrlx ixTIXTIX- o。富 lQna)lhQ5f-h3ginxJ 茸 亍0。富10令抒05一&巨* 11 gsl 2844 3T lLIX牝 CE)应殿 al*16B.20p13。HInH蒋zr吕_L23l_tIsiMTHDcnnd MNTkdnWMn苛宙 n asn神Dzs依nHg 画If yQu s*巨ork-nF FFoo=一 nrD。口 rnmma什么是反向服务呢?首先说下正向服务,例如爬虫程序 我们主动出击 去获取资

18、源.而反向服务我们是等待用户来访问.区别在于主动和被动.配置文件 Nginx/conf/nginx.confsnn a.1 jtv 匚 1 1 rv v urootlocalhost nginx# cd confrootlocalhost conf# 11total 60rw-r-r-.1rootroot1034Sep1013!:46fastcgi.confrw-r-r-.1rootroot1034Sep1013!:46fastcgl.conf.defaul,rw-r-r-.1rootroot964Sep1013!:46fastcgi_paramsrw-r-r-.1rootroot964Sep

19、1013!:46fastcgi_params.defairw-r-r-.1rootroot2837Sep1013!:46koi-utfrw-r-r-1rootroot2223Sep1013::46koi-winrw-r-r-1rootroot3957Sep10131:46mime typesrw-r-r-1rootroot3957Sep10131:46mime tvoes default ,rw-r-r-1rootroot2656Sep1013:46nginx,conf |rw-r-r-1rootroot2656Sep1013::46nginx.conf.defaultrw-r-r-1root

20、root596Sep1013:46scgi_paramsrw-r-r-1rootroot596Sep1013:46scgi_params defaultrw-r-r-1rootroot623Sep1013:46uusgi_paramsrw-r-r-1rootroot623Sep1013:46uusgl_params defaulrw-r-r-.1rootroot3610Sep1013:46win-utfrootlocalhost conf# pwd usr/local/nginx/conf配置Nginx转发条件w 192.168.200.129 x拦截 192.168.20C 的Nginx接收

21、到岳 192.168.200.130 8080 的 Tomcatsupstream tomcat_serverserver 192.168.209.130:8080;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 65;#gzip onjse rve r listenS3;server_name localhost;#charset koi8-r;#access_log logs/host.access log main;location / proxy_pass http:/tomcat_server;root html;index

22、 index.html index.htm;启 Nginx 服务器rootglocalhost conf# cd .rootglocalhost nginx# pwd/usr/local/nginxrootlocalhost nginx# ./sbin/nginx -s quit;rootlocalhost nginx# ./sbin/nginxrootlocaIhost nginx# |为了测试,我们在两个Tomcat服务器的index.jsp中分别加了这是来自于哪个ip下的Tomcat.如下图所示:S Apache To-nncat/7.047 xD Welcom-e to nginxl

23、x食企句会 0 192.168. ZOO. 129:8050 吧百hao-1 2.3_ _Q Cmd Markd s Documentation Configuration Examples Wiki Mailing Listsj 年 19216&2O0.1):8O8Q调不算 D Cm-d Markd 学习 java应学习下载口图片会文字口I am tonffguratianExamples Wiki Mailing Lists重启好Nginx后,我们再来访问192.168.200.129这台机器,我么可 以发现其实访问的是129.168.200.130这台机器.u圆r:mTonncat/7b

24、.47 X 闻 Ap 富 hie T0mtzat/7b.47 X +一仔金盼也百1尚.168.200.129 一UEI国叙m-0_L.E3l_t 画Dcnnd M 当 kCL33JTMrftfeRL Dzet*吊 DocunisntaHon cenfigu 攵-Qn E 答 mpCFs Wiki Ma 三 ng Lu-ff1_ohe Tomgct7o.47HrPMOS02 s我们在这里配置了两台转发机器:192.168.200.129和 192.168.200.130,它们的权重分别是2/3和1/3,也就是说访问三次 192.168.200.129,有两次是 192.168.200.129 上

25、的 Tomcat 来处理,有一次是192.168.200.130上的Tomcat来处理.如果我们的Tomcat服务器更多那么就需要在这里配置更多,权根据实际需求来划分.同上,搭建另一台机器192.168.200.130的负载均衡:1718192021222324252627282930313233343536373839404142434445464748495051http includedefault_typemain $remote_addr - $remote_userstatus $ bod y_byt es_sent $http_r(1 $http_usep_agQrrt B,$h

26、ttp_x_forwai#access_loglogs/access.log main;mime.types;application/octet-streamy#log_format#sendfileon;#tcp_nopushon;#keepalive_timeout 0;keepalive_timeout 65;#gzip on;upstream tomcat_server(server 192.168.200.12908080 weight=20;server 192.168.200.130:8080 weight=10;Jserver (listen 80;server_name lo

27、calhost;#charset koi8-r;#access_log logs/host.access.log main;location / proxy_pass http:/tomcat_serverj root ntml;index index.html index.htm;搭建 Keepalived:(Keepalived 需要依赖 openssl)这里如果我们的机器192.168.200.129出现故障了呢?那么怎么使 用192.168.200.130上的Nginx进行转发呢?怎么设主顺备机 呢?如果主机死了怎么进行故障移除呢?如果主机从不可用到可用状 态又怎么进行恢复添加呢?这些

28、功能都是可以通过Keepalived来进行 设置的.J名称. kepMiv捋d-L2,13-5,el6_&.i6B6pnn修改日期矣型-2015/3/20 3;11Fi openssl-IB.le-30.el6.8.i&86.rpm2015/4/1 21:32360 压缩Keepalived 原理:首先Keepalived可以在主机上产生一个虚拟的ip,这里叫做vip(v是 virtual 的意思):192.168.200.150, keepalived 会将这个 vip 绑定到 交换机上.当用户访问主机:192.168.200.129时,交换机会通过这个ip和vip的 对应找到192.168

29、.200.129上的Nginx进行处理.Ef温su&d。bsmsuumd5s集-H忌景坚回eOIdnlsttl窦做 pg=&$M 置s扈-H0 羿.00z.89IN6I &s d5oSIdozcd9IZ6IO.5S恒驱fJPTWSBBW pg6d$x曜es签 X.E6N s 6ZI.00z.89IN6IH 2rootroot4096Dec252914-rw-r-r-, 1rootrootS32104May17201S nginx-1.8.0.tadrwxrxr-x. 2rootroot4096Dec252014drwxrxr-x. 2rootroot4096Dec252014drwxrxr-x

30、. 2rootroot4096Dec252014drwxrxr-x. 2rootroot4096Dec252014rootlocalhost scpkeepallved-l2!.13-5.e!6_61686.rpm 19ssh: connect to host 192.168.20.130 port 22: Connection refus lost connectionrootlocalhostscp keepalived-1.2.13-5.e16_6.1686.rpm 19root192.168.296.130s password:keepalived-1.2.13-5. el6_6 .

31、1686 r|pm100% 209KBrootlocalhost -# rpm -ivh keepalived-1.2.13-5.el6_6.i686.r查看 Keepalived的安装目录:rootlocaIhost # rpm -ql keepalived /etc/keepalived/etc/keepalived/keepalivedconf/etc/rc d/init d/keepalived /etc/sysconfig/keepalived /usr/bin/genhash/usr/libexec/keepalived/usr/sbin/keepalived/usr/share/

32、doc/keepalived-1.2,13/usr/share/doc/keepalived-1.213/AUTHOR/usr/share/doc/keepalived-1.213/CONTRIBUTORS /usr/share/doc/keepalived-1.213/COPYING /usr/share/doc/keepalived-1.2.13/ChangeLog /u sr/share/doc/keepalived-1.2.13/NOT E_vr r p_vma c.txt /usr/share/doc/keepalived-1.2.13/README /usr/share/doc/k

33、eepalived-1.2.13/TODO /usr/share/doc/keepalived-1.2.13/VERSION/usr/share/doc/keepalived-1.2.13/keepalived . conf.SYNOPSIS /usr/share/doc/keepalived-1.2.13/samples/usr/share/doc/keepalived-1.2.13/samples/keepalived.conf, HTTP /usr/share/doc/keepalived-1.2.13/samples/keepalived.conf.IPv6 /usr/share/do

34、c/keepalived-1.2.13/samples/keepalived.conf.SMTP /usr/share/doc/keepalived-1.2.13/5amples/keepalived.conf /etc/keepali ved/keepal*ived. conf ocalhast #这里是来设置虚拟IP和ethl:为我的CentOS是拷贝过来蜘所以这里是ethl,关于怎么查看,我们在文章开头有查看本机ip: ifconfig,那里面有显示我们的网卡就是 ethl.! Configuration File for keepalived#全局配置global_defs (not

35、if ica t ion_ema il ( #指定kgpaHved在发生切换时需要发送 XXXjfflXXX-coniHW, smtp. com38not If ica t i on_ema i l_f r om XXXXXX .com # 指定发件人#指#smtp_server#smtp_connect_timeoutrouter_id IVSDEVELvrrp_instance VI_1 (state PIASTER-interface ethlvirtual_router_idpriority 100advert_int 1authentication auth_type PASSaut

36、h_pass 8888 一virtuaipaddress ( 1927168.200.150 192.168.200.15151#标示状态为MAST ER备份机为BACKU P#设置实例绑定的网卡#同一实例下virtu al_rx)ut必须方FASTER权重要高于BACKUP庄如BACKU #MAST ER与BACKUP负载均衡器之间同步 #设置认证#主从服务器验证方式#设曾uip#可以多个虚拟IP,换行即可配置完成之后,启动keepalived:rootlocalhost keepalived# service keepalived start Starting keepalived:Fro

37、otffllocalhost keenalivedl#检测Keepalived是否启动成功:rootjffllocaIhost keepalived# service keepalived start Starting keepalived;rootlocaIhost keepalived# ip add show ethil2: ethl: mtu 1500 qdisc pfilink/etherW:0c:29:ee:87:75 brd ff:ff:ff:ff:inet 192.168.290.129/24 brd 192.168.2W.255 scope globalinet 192.16

38、8.200.150/32 scope global ethlinet 192.168.200.151/32 scope global ethlinet6 fe80:20c:29ff:fees:8775/64 scope link valid_lft forever preferred_lft forever这里查看我们的机器多了两个ip,其实这两个ip都是虚拟ip设备机:|这里的权重只要低于主机的100就好.孑 19268,2W 30 x设置备机为BackUp,且权重 为99,设置虚拟IP与主机相同 的.notificationmaiQom XXXXXX com 律指定发件人 #smtp_se

39、rver lOILsmtoom #smtp_connect_timeout 39 router_id LVsDEVEL 一个标识一一 /vrrp_instance VI_1 state BACKUPinterface ethl virtual_router _ld 51 priority 99 ad怵Ft_int 1是秒 一authentication ( auth_type PASS auth_pass 8888 一 virtualipaddress (1927168.200.150192.168.200.151 -INSERT -弓标示状态为MAST ER备份机为BACKUP#固管实例绑定

40、的网卡#同一实例下vi rt u al_rou t e r_i d必须布#FASTERBACKUP 比丽BACKUP朴MASTER与BACKUP负载均街器之间同步;#设置认证#主从服务器验证方式#设置vip#可以多个虚拟IP,换行即可启动备机的Keepalived:rootlocalhost -# service keepalived startStarting keepalived:rootlocalhost -# ip add show ethl2: ethl: mtu 1500 qdisc pfi 色 n 1000llnk/ether 00:0c:29:JLf:67:12 brd ff:

41、ff:ff:ff:ff:ff inet 192.168.200 330/24 ird 192.168.200.255 scope global inet6 te89::20c:29tt:talf:6712/64 scope linkvalid_lft forever preferred_lft forever roMlocalhost当主机停止服务时备机即可接管继续服务:129为主机.130为备机.当主机停止服务 时,备机即可接管./192.168.200.129 xkeepalived-conf1 28L, 1180C written /rootloca Ihost keepalived#

42、service keef a lived stktStarting keepallved;rootlocaIhost keepalived# ip add show ethl2: ethl: UPJLOWER_UP mtu 1500 qdisc pi000/link/ether 00:0c:29:ee:87:75 brd ffiff:ff:ff:ff:ff inet 192.168.200.129/24 brd 192.168200.255 scape global inet 192.168.200.150/32 scope global ethlinet 192.168.200.151/32

43、 scope global ethlinet6 fe80:20c:29ff:feee:8775/64 scope linkvalld_lft forever preferred_lfgforeverrootlocaIhost keepalived# service keepalived stopStopping keepalived:rootlocaIhost keepalived#virtual_ipaddress (1927168.200- 150192.168.200- 151 #设置vip#可以多个虚拟IP,换分即可关于Nginx的内容大概就是这么多了,我这里是一步步配置且通过验 证的。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!