zoukankan      html  css  js  c++  java
  • 采用软件负载均衡器实现web服务器集群

    我用nginx实现网站负载均衡测试的例子,windows下IIS做负载实测.

    如果你的网站访问量(pv)越来越高,一台服务器已经没有办法承受流量压力,那就增多几台WEB服务器来做负载吧。

    做网站负载可以买硬件设备来实现,我们公司用的是F5,不过价格就几十万到上百万,太贵了,

    目前好多门户网站与大访问量的网站都在使用nginx做为HTTP服务器,所以nginx是非常优秀的,下面我亲手做这个负载测试吧。

    软/硬件环境:

    (2台服务器)
    第一台:
     CPU:Inter(R) 酷睿 i5 CPU 2.26GHz

     内存:2G
     系统:windows 7
     IIS: IIS 7
     nginx:nginx/Windows-0.8.22
     IP:10.60.44.126
     环境:本地
    第二台:
     CPU:Inter(R) 酷睿 i3 CPU 2.13GHz

     内存:2G
     系统:windows Server 2003
     IIS: IIS 6
     IP:10.60.44.127
     环境:远程

    注意:
     本次测试,软件nginx放在本地(10.60.44.126),也就是说放在域名绑定的那台服务器,这台服务器的IIS不能使用80端口,因为等下nginx软件要使用80这个端口。
    下载nginx的地址如下:
    nginx下载:http://nginx.net/
    本次测试使用的版本下载:nginx/Windows-0.8.22

    下载解压到C:,把目录名改成nginx


     

    实践步骤:

    第一:

            在本地(10.60.44.126)这台服务器IIS创建一个网站,使用端口为808,如下图:

         

            IIS 网站绑定设置图

    第二:

           在远程10.60.44.127的IIS创建一个网站,使用端口为808,如下图:


     

    远程IIS绑定设置图


         注意:第一步和第二步绑定相同的网站程序!

    第三:

    好了,以上已经设置好两台服务器的IIS了,下面配置nginx软件来实现网站负载均衡器,打开如下文件:

    C:\nginx\conf\nginx.conf

    1、找到内容server {

    在这上面加入如下内容:

    upstream  chenlu.com {  
      server   10.60.44.126:808;
      server   10.60.44.127:808;
        }

    (这是负载切换使用的服务器网站IP)

    2、找到location / {
                root   html;
                index  index.html index.htm;
            }

    把内容更改如下:

    location / {
                proxy_pass http://chenlu.com/;
                proxy_redirect default;
            }

    3、找到server {
            listen       80;
            server_name  localhost;

    把内容改成如下:

    server {
            listen       80;
            server_name  10.60.44.126;

    (这是监听访问域名绑定那台服务器80端口的请求)

    好,在这里就这么简单配置好了,下面看下以上3步配置的图:

     

    负载均衡器配置图

    第四:

          都配置好了,下面启动nginx这软件

          进入命令提示符CMD,进入c:\nginx>,输入nginx命令,如下图:

    启动nginx

    这时候,系统进程有两个nginx.exe进程,如下图:


     

    系统nginx进程

    停止nginx运行输入nginx -s stop 即可


     

    第五:

           经过以上的配置,现在我们看下负载效果:

           在本地(10.60.44.126)这服务器打开IE,输入:http://10.60.44.126/

           第一次打开网站的结果图:


     

    第一次运行网站图

            再刷新一下网页,出现的结果图:


     

    再次访问网站图

    很好,网站已经负载成功。

    经过这次测试,实现网站负载再也不是难事了。也不用购买非常贵的硬件设备了。网上介绍说nginx软件可以处理并发上万,所以绝对是个非常不错的选择。

    如果网站访问量非常大,可以专门用一台服务器跑nginx,其它服务器跑网站程序(几台服务器的程序都是一样的),这样负载就没有太大问题,如果再不行,把网站一些栏目做一个2级域名,2级域名同样做负载,这样更厉害了吧。

    nginx软件在linux上跑性能比在windows上跑要好,所以做负载可以用linux跑nginx,.net开发的网站放到windows服务器IIS上。


    注意:

    1找到本地机器的 \WINDOWS\system32\drivers\etc,修改hosts文件,添加10.60.44.126   www.chenlulouis123456.com   注释掉#host

    2 找到远程机器的 \WINDOWS\system32\drivers\etc,修改hosts文件 10.60.44.127  www.chenlulouis123456.com

    3.

      

    upstream  chenlu.com 
        {  
            server   10.60.44.126:808;
            server   10.60.44.127:808;
        }
        server {
            listen       80;
            server_name  http://www.chenlu123456.com/;

            #charset koi8-r;

            #access_log  logs/host.access.log  main;

            location / {
                proxy_pass  http://chenlu.com/;
                proxy_redirect  default;
            }

    进过以上步骤,就可以使本地和远程机器通过域名访问做实验,避免实际域名绑定。

  • 相关阅读:
    Linux下sed,awk,grep,cut,find学习笔记
    Python文件处理(1)
    KMP详解
    Java引用详解
    解决安卓中页脚被输入法顶起的问题
    解决swfupload上传控件文件名中文乱码问题 三种方法 flash及最新版本11.8.800.168
    null id in entry (don't flush the Session after an exception occurs)
    HQL中的Like查询需要注意的地方
    spring mvc controller间跳转 重定向 传参
    node to traverse cannot be null!
  • 原文地址:https://www.cnblogs.com/haiyabtx/p/2422924.html
Copyright © 2011-2022 走看看