nginx 下轮询简易负载均衡
Posted 杨今朝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 下轮询简易负载均衡相关的知识,希望对你有一定的参考价值。
我拿三台服务器做实验,负载均衡服务器为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
测试代码
<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 下轮询简易负载均衡的主要内容,如果未能解决你的问题,请参考以下文章