Nginx负载均衡和动静分离

Nginx负载均衡和动静分离

实验目的:实现Nginx的负载均衡和动静分离

实现环境:一台server用作Nginx代理(需要两块网卡,eth0连接内网,eth1连接外网),两台用作web服务(每台server都定义两个虚拟机,端口分别是80和8080),一台客户端用于验证结果;

操作步骤

负载均衡的实现:

一、配置IP

1.配置A主机的IP

# ip addr add dev eth0 192.168.10.254/24

# ip addr add dev eth1 192.168.20.254/24

2.配置B主机的IP

# ip addr add dev eth0 192.168.10.2/24

3.配置C主机的IP

# ip ddr add dev eth0 192.168.10.3/24

二、配置web服务(B和C主机都做同样配置)

1.安装所需程序包

# yum -y install nginx php-fpm

2.配置web服务,提供默认主页

# vim /etc/nginx/conf.d/defalut.conf

    server {

        index index.php index.html;

    }

    location / {

        fastcgi_pass 127.0.0.1:9000;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;

        include fastcgi_params;

    }

# vim /usr/share/nginx/html/index.php

    <?php

        phpinfo();

    ?>

3.将php-fpm的运行用户和组改为nginx

# vim /etc/php-fpm.d/www.conf

    user = nginx

    group = nginx

4.启动php-fpm和nginx

# service php-fpm start

# service nginx start

三、配置代理,以集群方式实现负载均衡

1.安装nginx

# yum -y install nginx

2.定义动态页面集群组,在http{}段中定义;

# vim /etc/nginx/nginx.conf

    http {

        upstream websrvs {

            server 192.168.10.2:80;

            server 192.168.10.3:80;

        }

    }

3.调用定义的集群组,在server{}段的location{}段中调用;

# vim /etc/nginx/conf.d/default.conf

        server {

            location / {

                proxy_pass http://wersrvs;\

               index index.php;

            }

        }

4.启动服务

# service nginx start

5.在客户端上测试,访问192.168.20.254地址,响应的服务器是轮询的结果;

动静分离的实现:

一、配置虚拟主机

1.配置虚拟主机(B和C主机都作同样配置,默认主页中的ip地址改为C主机的ip,以示区分)

# vim /etc/nginx/conf.d/default.conf

    server {

        listen 8080;

        server_name _;

        index index.html

        location / {

            root /var/www/static;

        }

    }

2.创建默认主页

# mkdir -v /var/www/static

# vim /var/www/static/index.html

    <h1>static page 192.168.10.2</h1>

3.检测和重载配置

# nginx -t

# nginx -s reload

二、定义静态页面集群组及调用

1.定义静态页面集群组

# vim /etc/nginx/nginx.conf

    http {

        upstream statrvs {

            server 192.168.10.2:8080;

            server 192.168.10.3:8080;

        }

    }

2.调用定义的集群组,在server{}段的location{}段中调用;

# vim /etc/nginx/conf.d/default.conf

    server {

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

            proxy_pass http://stasrvs;

            index index.html;

        }

    }

结果验证:

1.访问静态页面,在浏览器中输入地址:192.168.20.254/index.html,此时响应的集群组是stasrvs,且后端的服务器轮询响应请求;

2.访问动态页面,在浏览器中输入地址:192.168.20.254/index.php,此时响应的集群组是websrvs,且后端的服务器轮询响应请求;

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

赞 (0)
人字拖人字拖
上一篇 2017-05-13 22:16
下一篇 2017-05-14 09:03

相关推荐

  • inotify介绍及rsync + inotify 实时同步备份

    1、前言 rsync (remote sync)是一款非常好的数据同步工具,能够通过对比同步双方的数据变动,实现增量同步,还可以通过LAN/WAN实现远程多台主机间文件的同步,还能结合crond任务计划来执行自动备份,又可以结合ssh实现远程数据备份的安全,种种特性使他看起来相当优秀。但如果需备份数据十分庞大时,它的不足之处就显现出来了,比如每次执…

    Linux干货 2016-06-15
  • gdisk用法

    gdisk用法   gdisk  – Interactive GUID partition table (GPT) manipulator GPT  fdisk (aka gdisk) is a text–mode menu–driven program for creation and ma…

    Linux干货 2017-04-24
  • LVS介绍及工作原理图解

    一、LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,官方站点是:http://www.linuxvirtualserver.org。现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须重新编译内核以支持LVS功能模块,但是从Linux2.…

    2017-12-06
  • ansible基础应用

    Ansible基础 ansible是一款自动化运维工具,基于Python开发,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。 Ansible架构简介 ansible的核心就是ansible平台,ansible是高度模…

    Linux干货 2016-08-22
  • 设计模式(一)工厂模式Factory(创建型)

      在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在…

    Linux干货 2015-06-23
  • 第二周 N28

    作业二

    2017-12-10