码迷,mamicode.com
首页 > 其他好文 > 详细

nginx 下轮询简易负载均衡

时间:2018-09-13 22:45:13      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:rand   运行   现在   img   其他   html   forward   相同   div   

我拿三台服务器做实验,负载均衡服务器为1号  其他为2,3 号机

负载均衡服务器 ip 10.0.127.247

2号机 ip 10.0.127.47

3号机ip 10.0.127.96

首先在2,3,号机上分别搭建一个站点如下,以2 号机为例,3号机操作一样

1,进入到 Nginx 虚拟站点配置文件目录下

 cd /etc/nginx/sites-available/

技术分享图片

 

2.复制 一份站点配置 模板

sudo cp default  www.hjc.com

3,对创建的站点进行配置

 sudo vim www.hjc.com 

技术分享图片

 

 4,返回到上级目录进入sites-enabled创建一个软链接 指向刚才配置的站点文件

cd ..

 cd sites-enabled/

sudo ln -s ../sites-available/www.hjc.com www.hjc.com

 

5,重启nginx ,如果不报错,则配置文件没有错误,报错可能是nginx没启动 或者web端口被其他进程占据,根据提示修改

sudo service nginx restart

6,进入到站点数据保存目录中创建一个www.hjc.com 目录 ,保证和第三步 root 中路径相同

sudo mkdir www.hjc.com

7,在 www.hjc.com 目录中创建一个测试html文件

sudo vim index.html

技术分享图片

测试代码

 <!doctype html>  
<html>  
<head>    
<title>Heart</title>   
<meta charset="UTF-8">    
</head>    
<body>    
<canvas id="c"></canvas>    
<script>    
    var b = document.body;
     var c = document.getElementsByTagName(‘canvas‘)[0];
     var a = c.getContext(‘2d‘);
</script>
    <script>
eval(‘var M=Math,n=M.pow,i,E=2,F="rgba(233,61,109,",d=M.cos,z=M.sin,L=1,u=30,W=window,w=c.width=W.innerWidth,h=c.height=W.innerHeight,r=_1){return M.random()*2-1},y="px Arial",v="2号机",q="技术分享图片",X=w/2,Y=h/2,T=4,p=_1){var e=this;e.g=_1){e.x=X;e.y=Y;e.k=0;e.l=0;e.t=M.random()*19000;e.c=e.t};e.d=_1){a.fillStyle=F+(e.c/e.t)+")";a.fillText(q,e.x,e.y);e.c-=50;e.x+=e.k;e.y+=e.l;e.k=e.k+r();e.l=e.l+r();if(e.c<0||e.x>w||e.x<0||e.y>h||e.y<0){e.g()}};e.g()},A,B;a.textAlign="center";a.strokeStyle="#000";a.lineWidth=2;for(i=0;i<350;i++){M[i]=new p()}setInterval(_1){a.clearRect(0,0,w,h);a.font=u+y;X=(w/6*n(z(T),3)+w/2);Y=0.8*(-h/40*(13*d(T)-5*d(2*T)-2*d(3*T)-d(4*T))+h/2.3);T+=(z(T)+3)/99;for(i=0;i<350;i++){with(M[i]){A=(x/w-0.5)*2,B=-(y/h-0.5);if(L&&(A*A+2*n((B-0.5*n(M.abs(A),0.5)),2))>0.11){k=l=0}d()}}a.font=120+y;if(E>0.1){if(E<1){a.fillStyle=F+E+")";a.fillText("Click",w/2,h/2)}E-=0.02}a.fillStyle="#E93D6D";a.fillText(v,X,Y+u);a.strokeText(v,X,Y+u)},50);b.bgColor="#FFEFF2";c.onmouseup=_1){L=(L)?0:1}‘.replace(/(_1)/g,‘function(‘))
    </script>
<div style="text-align:center;">
</div>
</body> 
</html>

 8,最后修改hosts文件,让ip解析到本地 ,在文件中加入10.0.127.47 www.hjc.com

sudo vim /etc/hosts

技术分享图片

 

 二:

3号机和2号机配置和上面一样

现在配置负载均衡服务器

1,首先配置一个和上面一个名称一样的站点

主要的配置文件略有不同

在文件开头增加一个连接池 添加部署的服务器IP

upstream www_server_pools { #www_server_pools自定义的连接池名称
server 10.0.127.47; #连接的服务器,可以ip或者是域名
server 10.0.127.96;

在location 里面增加 转发算法

proxy_pass http://www_server_pools;#http://连接池名称
proxy_set_header Host $host; #把主机的header头发给轮询的服务器
proxy_set_header X-Forward-For $Remote_addr; #获取真实的ip地址

技术分享图片

 

 

 

 8 和上面一样创建一个软链接指向该文件,然后重启nginx ,在/var/www下 创建一个www.hjc.com 目录 最后配置下

hosts 文件就结束了。

 

9,运行效果 :

第一次访问负载均衡服务器会把流量引入2号机,然后点刷新会把流量引入3号机。 实现了轮询访问,再点一次就回到2号机。

技术分享图片

技术分享图片

 

nginx 下轮询简易负载均衡

标签:rand   运行   现在   img   其他   html   forward   相同   div   

原文地址:https://www.cnblogs.com/yjz8888/p/9643315.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!