zoukankan      html  css  js  c++  java
  • 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

    测试代码

     <!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号机。

    一起记录学习
  • 相关阅读:
    JNday7-pm
    JNday7-am
    bzoj1047理想的正方形
    关于OI中简单的常数优化
    bzoj1050旅行
    bzoj1044木棍分割
    bzoj1875 HH去散步
    bzoj1059矩阵游戏
    bzoj2705Longge的问题
    bzoj1833数字计数
  • 原文地址:https://www.cnblogs.com/yjz8888/p/9643315.html
Copyright © 2011-2022 走看看