Nginx负载均衡和动静分离

Nginx负载均衡和动静分离

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

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

操作步骤

负载均衡的实现:

一、配置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服务(BC主机都做同样配置)

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-fpmnginx

# 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.配置虚拟主机(BC主机都作同样配置,默认主页中的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
下一篇 2017-05-14

相关推荐

  • 马哥教育网络班20期+第六周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;     cp /etc/rc.d/rc.sysinit  /tmp   &n…

    Linux干货 2016-10-19
  • shell编程if及find查找作业

    写一个脚本/root/bin/createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息 [root@www sh.log]# cat createuser.sh  #!/bin/bash #author #使用一个用户名作为参数,如…

    Linux干货 2016-08-16
  • 第十四周作业

    系统的INPUT和OUTPUT默认策略为DROP; 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机; ]# iptables -P INPUT DROP #INPUT默认策略为DROP ]# iptables -P OUTPUT DROP…

    Linux干货 2017-04-12
  • 初窥门径shell脚本

    1.什么是shell脚本    首先它是一个脚本,并不能作为正式的编程语言。因为是跑在linux的shell中,所以叫shell脚本。确切的说shell脚本就是一些命令的集合。 2.写脚本前的一些细节及建议   Shell脚本通常都是以.sh 为后缀名的,这个并不是说不带.sh这个脚本就不能执行,只是大家的一个习惯而已…

    Linux干货 2016-08-12
  • 负载均衡LVS原理及其应用

    一、LB常用解决方案     1. 硬件负载均衡解决方案:          F5公司: BIG-IP         Citrix公司: …

    Linux干货 2015-12-28
  • Linux下vim编辑器的使用

    vim编辑器 概括 vim,是vi的升级版本,它不仅兼容vi的所有指令,还有一些新的特性在里面。 使用vi和vim的三种主要模式 vim在工作过程当中有三种模式,编辑模式(命令模式)、输入模式、末行模式     1、编辑模式:也叫命令模式,键盘操作常被理解为编辑命令;     2…

    Linux干货 2016-08-10