Loading... <h1 style="font-size: 2.6em;margin: 21px 0px 10.5px;font-family: inherit;color: inherit">Ngnix Proxy模块的应用之负载均衡</h1> <p style="margin-top: 0px;margin-bottom: 1.1em"></p> <hr /> <ul class=" list-paddingleft-2"> <li> <p>Ngnix Proxy模块的应用之负载均衡</p> </li> <li> <p></p> </li> <ul class=" list-paddingleft-2"> <li> <p>Proxy 模块介绍</p> </li> <li> <p>实验环境</p> </li> <li> <p>配置Proxy</p> </li> </ul> </ul> <hr /> <h2 style="font-family: inherit;color: inherit;font-size: 2.15em;margin: 1.2em 0px 0.6em">Proxy 模块介绍</h2> <p style="margin-top: 0px;margin-bottom: 1.1em"> 在我之前的文章提到过,Nginx可以提供反向代理加速、基于应用层的负载均衡并能对后端<br />服务器做健康状态检测。下面我们就动手操作一下,看如何实现上述功能。</p> <hr /> <h2 style="font-family: inherit;color: inherit;font-size: 2.15em;margin: 1.2em 0px 0.6em">实验环境</h2> <blockquote><table> <tbody> <tr class="firstRow"> <td width="325" valign="top" style="text-align: center"><strong>主机名称</strong></td> <td width="325" valign="top">主要功能</td> <td width="325" valign="top"><strong>外网地址</strong></td> <td width="325" valign="top" style="text-align: right"><strong>内网地址</strong></td> </tr> <tr> <td width="325" valign="top">code</td> <td width="325" valign="top">nginx代理服务器</td> <td width="325" valign="top">192.168.1.11</td> <td width="325" valign="top">192.168.10.1</td> </tr> <tr> <td width="325" valign="top">node1</td> <td width="325" valign="top">httpd应用服务器1</td> <td width="325" valign="top"></td> <td width="325" valign="top">192.168.10.2</td> </tr> <tr> <td width="325" valign="top">node2</td> <td width="325" valign="top">httpd应用服务器2</td> <td width="325" valign="top"></td> <td width="325" valign="top">192.168.10.3</td> </tr> </tbody> </table> </blockquote> <p style="margin-top: 0px;margin-bottom: 1.1em">如果之前没有接触过Nginx,请看我之前写过的博文Nginx的编译安装。</p> <hr /> <h2 style="font-family: inherit;color: inherit;font-size: 2.15em;margin: 1.2em 0px 0.6em">配置Proxy</h2> <p style="margin-top: 0px;margin-bottom: 1.1em">一、配置反向代理,并利用node1与node2实现负载均衡。</p> <blockquote><p style="margin-top: 0px;font-size: 1em;margin-bottom: 0px">1.code上的配置,编辑配置文件<code>vim /usr/local/nginx/conf/nginx.conf</code></p> </blockquote> <pre>在主配置文件的http段使用upstream定义一个集群,后面的httpserver是集群的名称。 upstream httpserver { server 192.168.10.2; server 192.168.10.3; } 之后在location / 中使用proxy_pass设置将用户的所有请求全部代理到刚才定义好的负载均衡集群中。 location / { proxy_pass http://httpserver; root html; index index.html index.htm; }</pre> <blockquote><p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em">启动服务:[root@code ~]# /usr/local/nginx/sbin/nginx<br />重启服务:[root@code ~]# /usr/local/nginx/sbin/nginx -s reload</p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em">2.node1上的配置</p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em">[root@node1 ~]# yum install httpd -y 安装httpd<br />[root@node1 ~]# service httpd start 启动httpd服务<br />[root@node1 ~]# echo “This is node1 page” > /var/www/html/index.html 定义一个主页面。</p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em">3.node2上的配置</p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em">[root@node2 ~]# yum install httpd -y 安装httpd<br />[root@node2 ~]# service httpd start 启动httpd服务<br />[root@node2 ~]# echo “This is node2 page” > /var/www/html/index.html 定义一个主页面。配置不同的页面,方便我们区分。</p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em">4.打开浏览器输入代理服务器的地址192.168.1.11进行测试:</p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em"><img src="//cto.wang/usr/uploads/2016/07/20160703161435-7.gif" alt="Alt text" longdesc="./test-1.gif" /><img src="//cto.wang/usr/uploads/2016/07/20160703161435-97.gif" title="1459067882912441.gif" alt="test-1.gif" /></p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em">可以看到成功的进行了负载均衡。</p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em">5.将node2上面的httpd服务停掉,进行测试。</p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em">[root@node2 ~]# service httpd stop</p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em"><img src="//cto.wang/usr/uploads/2016/07/20160703161435-7.gif" alt="Alt text" longdesc="./test-2.gif" /><img src="//cto.wang/usr/uploads/2016/07/20160703161435-87.gif" title="1459067893791981.gif" alt="test-2.gif" /></p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em">代理服务器检测到了node2的健康状态不正常,则后续的请求全部发给了node1进行响应。</p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em">6.将node2上面的httpd服务启动,再进行测试。</p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em">[root@node2 ~]# service httpd start</p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 1.1em"><img src="//cto.wang/usr/uploads/2016/07/20160703161435-7.gif" alt="Alt text" longdesc="./test-3.gif" /><img src="//cto.wang/usr/uploads/2016/07/20160703161435-52.gif" title="1459067897598414.gif" alt="test-3.gif" /></p> <p style="margin-top: 0px;font-size: 1em;margin-bottom: 0px">在代理服务器检测到node2的健康状态正常后,又将用户的请求负载至两台node上。</p> </blockquote> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信