nginx负载均衡实验

实验一、

实验环境:

    1、一台director主机。并部署nginx服务。

       内网iP192.168.1.1  外网iP10.1.64.1

    2、一台后端服务器。并部署httpd服务。并创建两个测试页。

       Vim  /var/www/html/index.html

       Vim  /var/www/html/admin/index.html

实验步骤:

    1、配置director主机,vim  /var/nginx/conf.d/default.conf

        location  /  {

           root  /usr/share/nginx/html;

           proxy_pass  http://192.168.1.2;

           index  index.html  index.htm;

                    }

        

        location  /admin/  {

            proxy_pass  http://192.168.1.2;

                    }

        注意:当proxy_pass http://192.168.1.2;时,用浏览器访问10.1.64.1/admin/时,

          出现的页面是定义在/var/www/html/admin/index.html中的页面。

              proxy_pass http://192.168.1.2/;时,用浏览器访问10.1.64.1/admin/时,

          将被代理服务器代理到后端,显示/var/www/html/index.html中的页面。

    2、将符合条件的URL代理至后端服务器。例如将图片代理至后端。

          location  ~* \.(jpg|peg|gif|png)$  {

            proxy_pass  http://192.168.1.2;

                     }

        /var/www/html/放置一张图片。

   blob.png

实验二、

     proxy_set_header field value;

设定发往后端主机的请求报文的请求首部的值;Context: http, server, location

 通过实验一的实验结果查看后端服务器的httpdaccess.log日志,会发现请求结果全是

 director192.168.1.1请求的。

     blob.png

 

proxy_set_header模块添加上后,可以在后端服务器的日志中记录实际的报文发起者,

而不再记录directorip

配置nginx服务。

    将该模块加入到server

    proxy_set_header X-Real-IP $remote_addr;

          X-Real-IP $remote_addr:面向客户端一侧时,真正发出请求的客户端的ip地址。于

                            将请求直接向后端代理。

配置httpdhttpd.conf配置文件

blob.png 

重启服务,在浏览器中登录网页。查看后端服务器的access.log文件。

blob.png 

 

 

实验三、定义proxy的缓存功能。

1、定义可用于proxy功能的缓存。只可定义于http

   vim  /etc/nginx/nginx.conf

       proxy_cache_path /var/cache/nginx/proxy_cache levels=1:1:1 keys_zone=pxycache:20m max_size=1g;

       定义缓存路径:/var/cache/nginx/proxy_cache

       定义缓存级别:level=1:1:1

       Max_size:目录一共用多大的空间来缓存缓存项

       Keys_zone:

2定义在需要调用缓存功能的配置段例如对图片定义缓存功能。

   Vim default.conf

   location ~* \.(jpg|jpeg|gif|png)$ {

        proxy_pass http://192.168.1.2;

        proxy_cache pxycache;  表示调用此缓存功能。

        proxy_cache_key $request_uri;

        proxy_cache_valid 200 302 301 1h;  对不同的响应码作缓存时长。

        proxy_cache_valid any 1m;  对其他响应码作缓存时长,为1min

    }

4、重启服务。在浏览器中输入10.2.64.1/logo.png第一次响应会有点慢,但是当第一次请

       求成功后,当第二次请求时就会很快了,因为在/var/cache/nginx/porxy_cache目录中已

       经生成了缓存项,可以进入该目录进行验证。

实验四、

定义服务器组

实验环境:

    1、一台director,并配置nginx服务。

      内网ip192.168.1.1  外网ip10.1.64.1

    2、两台后端服务器,分别部署httpd服务,并创建相应的测试页。

       Server1:192.168.1.2    server2:192.168.1.3

实验步骤:

    1、在nginxhttp中定义后端服务器组。

          upstream  webser  {

             Server 192.168.1.2;

             Server 192.168.1.3;

                   }

    2、在default.conf中定义后端引用;

          location  /  {

              proxy_pass  http://webser;

                      }

    3、当在浏览器中测试10.1.64.1时,后端服务器组会以轮询的方式显示页面,实现了

       后端服务器的负载均衡,在生产环境中,服务器组中的页面内容应该是一样的。

blob.png 

    4、测试weight=number   

   upstream  webser  {

             Server 192.168.1.2  weight=2;

             Server 192.168.1.3;

                     }

   当在server 192.168.1.2上加上权重后,server1在被响应时,会根据权重的值来轮询。

blob.png 

5backup

将服务器标记为“备用”,即所有服务器均不可用时此服务器才启用;

        server2主机上部署nginx服务,提供测试页,并将端口修改为8080,因为80端口

已经被httpd服务占用。

    upstream  webser  {

             Server 192.168.1.2  weight=2;

             Server 192.168.1.3;

             Server 192.168.1.38080  buckup;

                      }

    server1server2的主机正常工作时,server3是不会被启用的。只有当server1

Server2都不可用时server3才会被启用。

6、测试hash key

       在之前的两台后端主机上分别创建10个名称相同内容不同的网页,以判断是来自主机

1还是主机2

    upstream  webser  {

                 Server 192.168.1.2  weight=2;

                 Server 192.168.1.3;

                 Server 192.168.1.38080  buckup;

                 hash  $request_uri;

                      }

 

     http://10.1.64.1/test{1..9}.html进行测试

    实现的效果就是:

        把对同一个url的请求,不管是来自哪台主机,都将发往upstream server

 

 

 

 

 

原创文章,作者:zzd,如若转载,请注明出处:http://www.178linux.com/56221

(0)
zzdzzd
上一篇 2016-10-30
下一篇 2016-10-30

相关推荐

  • sed行编辑器与vim编辑器

    一、sed行编辑器   1、简介:sed的本身也是一个管道命令,可以分析标准输入,还可以将数据进行替换、删除、新增、选取特定行的功能   2、工作原理:sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容…

    Linux干货 2016-08-11
  • 0806文本处理工具

    ———- 文件查看工具 ———- cat:    cat [OPTION]… [FILE]…   //查看文本文件内容,一般后面跟文件名(相对路径),或者是文件名(绝对路径) -n 加行号 -b 加行号,…

    Linux干货 2016-08-07
  • LVS调度方法

    lvs scheduler:     根据其调度时是否考虑后端主机的当前负载,可分为静态方法和动态方法     静态方法:仅根据算法本身进行调度:         RR:Round Ronin 轮询         WRR:Weighted…

    Linux干货 2017-01-10
  • LVM基本原理及使用

    LVM简介 LVM全称Logical Volume Manager(逻辑卷管理),是将几个物理分区(或硬盘)通过软件组合成一块看起来是独立大硬盘(VG),然后对这块大硬盘分割成可使用的逻辑卷(LV),最终能够挂载使用,以达到对磁盘空间进行弹性管理的目的。 LVM的基本原理 基本术语 dm(device mapper):将一个或多个底层块设备组织成一个逻辑设备…

    Linux干货 2016-04-17
  • grep&正则表达式

    grep&正则表达式 grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 语法 grep [选项]… PATTERN [FILE]… 选项 -a 不要忽略…

    Linux干货 2018-03-23
  • Linux系统上的文件处理工具

    Linux系统上的文件处理工具 我们都知道在计算机中,存在大量的文件,这些文件中包含大量的信息。可是有些时候,为了工作的效率,我们在茫茫信息中提取出我们所需要的信息,这样的技能就显得尤为重要。Linux系统上为我我们提供了多种多样的文本处理工具,下面我们来简单说一下。 查看文件内容我们可以使用less命令,cat命令,more命令等等 cat cat [OP…

    Linux干货 2016-08-05