负载均衡一个PHP应用

负载均衡一个PHP应用

1、mariadb、nfs服务器的设置 (centos 7)

[root@localhost ~]# rpm -q rpcbind
rpcbind-0.2.0-32.el7.x86_64
[root@localhost ~]# rpm -q nfs-utils (默认nfs已经安装的)
nfs-utils-1.3.0-0.21.el7.x86_64

[root@localhost ~]# yum -y install mariadb-server 
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# mysql  (创建一个数据库给web服务器使用)
    MariaDB [(none)]> CREATE DATABASE wordpress;
    MariaDB [(none)]> GRANT ALL ON wordpress.* TO 'wordpress'@'192.168.116.%' IDENTIFIED BY '123456';
    MariaDB [(none)]> FLUSH PRIVILEGES;

[root@localhost ~]# systemctl start nfs 
[root@localhost ~]# mkdir /wordpress  
[root@localhost ~]# vim /etc/exports  (创建共享目录)
    /wordpress      192.168.116.0/24(rw,no_root_squash)

[root@localhost ~]# tar xf wordpress-4.5.3-zh_CN.tar.gz 
[root@localhost ~]# cd wordpress/
[root@localhost wordpress]# mv ./* /wordpress/
[root@localhost wordpress]# cp wp-config-sample.php wp-config.php (此目录为/wordpress)
[root@localhost wordpress]# vim wp-config.php 修改如下配置
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', '123456');
define('DB_HOST', '192.168.116.114');
define('DB_CHARSET', 'utf8');
[root@localhost ~]# chown -R apache:apache /wordpress

2、web1的配置(centos6)

(1)网卡配置

1)修改内核参数来限制arp响应和通告

先限制通告再设置ip
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@localhost ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@localhost ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

2)网卡配置

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1 
网卡名和MAC地址每台虚拟机都不同的,可使用 ip a 命令查看再设置
DEVICE=eth1
HWADDR=00:0c:29:9f:12:63 
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.116.6
NETMASK=255.255.255.0

先重启网络服务再配置下面lo0网络
[root@localhost ~]# ifconfig lo:0 192.168.116.254 netmask 255.255.255.255 broadcast 192.168.116.254 up
[root@localhost ~]# route add -host 192.168.116.254 dev lo:0

3)挂载nfs共享目录

[root@localhost ~]# mkdir /web
[root@localhost ~]# mount -t nfs 192.168.116.114:/wrodpress /web

4)安装httpd php php-mysql

[root@localhost ~]# yum -y install httpd php php-mysql
[root@localhost ~]# vim /etc/httpd/conf.d/web.conf
    NameVirtualHost *:80
    <Virtualhost *:80>
            ServerName www.wordpress.com
            DocumentRoot "/web"
    </Virtualhost>
[root@localhost ~]# service httpd start

3、web2的配置(centos7)

1)修改内核参数来限制arp响应和通告

先限制通告再设置ip
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@localhost ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@localhost ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

2)网卡配置

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno33554984 

DEVICE=eno33554984
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.116.7
NETMASK=255.255.255.0
HWADDR=00:0c:29:e8:7c:c6

先重启网络服务再配置下面lo0网络
[root@localhost ~]# ifconfig lo:0 192.168.116.254 netmask 255.255.255.255 broadcast 192.168.116.254 up  (临时设置网卡,重启网络服务时效)
[root@localhost ~]# route add -host 192.168.116.254 dev lo:0

3)挂载nfs共享目录

[root@localhost ~]# mkdir /web
[root@localhost ~]# mount -t nfs 192.168.116.114:/wrodpress /web

4)安装httpd php php-mysql

[root@localhost ~]# yum -y install httpd php php-mysql
[root@localhost ~]# vim /etc/httpd/conf.d/web.conf 

    <Virtualhost *:80>
            DocumentRoot "/web"
            ServerName www.wrodpress.com
            <Directory "/web">
                    AllowOverride none
                    Options none
                    Require all granted
            </Directory>
    </Virtualhost>
[root@localhost ~]# systemctl start httpd

4、director的设置

1)网卡配置

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 
DEVICE=eno16777736
HWADDR= 00:0c:29:0e:27:cd
IPADDR=192.168.116.1
NETMASK=255.255.255.0
BOOTPROTO=none
ONBOOT=yes

先重启网络服务再配置下面lo0网络
[root@localhost ~]# ifconfig eno16777736:0 192.168.116.254 netmask 255.255.255.255 broadcast 192.168.116.254 up

2)ipvs的配置

[root@localhost ~]# yum -y install ipvsadm
[root@localhost ~]# ipvsadm -A -t 192.168.116.254:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.116.254:80 -r 192.168.116.6 -g -w 1
[root@localhost ~]# ipvsadm -a -t 192.168.116.254:80 -r 192.168.116.7 -g -w 1

5、客户端测试

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
DEVICE=eno16777736
HWADDR= 00:0c:29:0e:27:cu
IPADDR=192.168.116.110
NETMASK=255.255.255.0
BOOTPROTO=none
ONBOOT=yes

[root@localhost ~]# vim /etc/hosts
    192.168.116.254   www.wordpress.com

在浏览器中输入www.wordpress.com,按提示安装WordPress并登陆。

负载均衡一个PHP应用

新建一个网页,并上传一个图片,发布后多次刷新,如果显示页面都一样,则实验完成

负载均衡一个PHP应用

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

(0)
上一篇 2016-10-31 15:19
下一篇 2016-10-31 20:34

相关推荐

  • Linux基础与命令解释

    Linux基础与命令 Linux起源      1984 年:Richard Stallman 发起GNU 项目和自由软件基金会 创建开源的UNIX 实用工具版本 创建通用公共许可证(GPL) ) 开源软件许可实施原则  1991 年:Linus Torvalds 发布Linux 创建开放源码,类Unix 的内核,在GPL 下发布 下…

    Linux干货 2017-03-17
  • Linux系统启动流程、内核及模块管理、linux启动故障排除和自制linux

    Linux系统启动流程、内核及模块管理 Linux系统的组成部分组成:内核+根文件系统(kernel+rootfs)内核(kernel): 进程管理(创建、调度、销毁等)、内存管理、网络管理(网络协议栈)、驱动程序、文件系统、安全功能IPC:Inter Process Communication机制本地进程间通信机制:消息队列、semerphor、shm(共…

    2016-09-29
  • Linux启动流程

    Linux的启动流程有以下部分组成,以下流程以CentOs 6.8为例 1、POST加电自检,检测各项硬件工作是否正常,BIOS选择启动设备。 2、根据设备的前446字节,加载bootloader程序 3、initramfs是1.5阶段,intramfs文件是创建系统时生成的文件。intramfs是一个过渡阶段,initramfs加载系统的一些设备驱动,比如…

    2017-05-15
  • shell脚本编程之变量

    一、创建shell脚本文件   创建shell脚本时,必须在第一行指定要使用的shell。格式为:   #!/bin/bash   通常在shell脚本中,#代表注释行,即不被执行的行,而第一行“#!”则是表示用哪个shell来执行脚本。   实例:   让我们来执行一下这个脚本:   上面的结果显…

    Linux干货 2016-02-14
  • 基于Keepalived构建高可用集群配置实例(HA Cluster)

    什么是集群 简单的讲集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。 关于更详细的高可用集群我们在后面再做详解…

    Linux干货 2016-11-03
  • /etc/fstab及/boot分区文件恢复

    以centos6为例,/boot目录下有最为关键的开机启动所必须的内核文件、根文件系统驱动文件已经引导加载程序(bootloader)grub。当我们清空此文件夹之后关机,机器就不能正常启动了,这种情况下,可以借助光盘启动进入救援模式解决。具体步骤如下: 1. 开机进入救援模式 这里不像正常情况下,显示根文件系统挂载在/mnt/sysimage目录,而是提示…

    2017-07-09