1. 程式人生 > >nginx 下輪詢簡易負載均衡

nginx 下輪詢簡易負載均衡

實的 efault ati oot star art div 0.11 host

我拿三臺服務器做實驗,負載均衡服務器為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 下輪詢簡易負載均衡