LAMP之AMP分离+XCache加速

实验需求

  • 搭建LAMP平台,要求apache、php、MariaDB分别在不同服务器实现动静分离,不需要考虑动态服务器和静态服务器数据同步问题;
  • 在LAMP平台之上,搭建博客和论坛,博客和论坛分别位于不同主机;
  • 公网用户除了可以访问httpd之外不能访问内网任何一台服务器;
  • 部署完成使用ab命令进行压力测试,并且部署Xcache为php提供加速功能。

环境拓扑如下所示:

LAMP之AMP分离+XCache加速

部署思路

网络环境:

Apache服务器使用双网卡,一块网卡监听外网用户请求,一块网卡和内网服务区进行通信,apache的内网网卡和其他服务器使用交换机进行连接。

Apache和php交互:

Apache和php交互有三种方式,cgi,模块方式,fcgi;但是cgi和fcgi跨主机访问php服务器,所以apache和php服务器只能使用fcgi方式进行交互。

php和MariaDB交互:

安装bbs和blog时,会要求提供MariaDB数据库和用户密码等信息,所以只需要在MariaDB数据创建好相关的数据库和用户,然后在保证php服务器可以访问即可。

bbs和blog安装问题:

  1. 安装的程序包需要在apache和php服务器都存在一份,apache提供静态页面访问,php提供动态页面访问;不考虑同步问题

  2. 如果出现要求对程序有写入权限,静态服务器设置apache的服务用户daemon对文件可写,动态服务器设置php-fpm的服务用户nobody对文件可写。

实验环境

系统版本

主机名

ip地址

Apache

CentOS 6.6 64位

web-01

外网:eth0: 1.1.1.1

内网:eth1:172.16.4.100

论坛

Centos 6.6 64位

bbs-01

内网: eth0:172.16.4.101

博客

Centos 6.6 64位

blog-01

内网: eth0:172.16.4.102

数据库

Centos 6.6 64位

MariaDB-01

内网:eth0:172.16.4.136

使用软件

apr-1.5.0.tar.bz2
apr-util-1.5.3.tar.bz2
httpd-2.4.10.tar.bz2
mariadb-5.5.43-linux-x86_64.tar.gz
php-5.4.40.tar.bz2
wordpress-3.3.1-zh_CN.zip
xcache-3.2.0.tar.bz2
Discuz_7.2_FULL_SC_UTF8.zip

------------------------------------分割线------------------------------------

------------------------------------分割线------------------------------------

Apache 配置

解决依赖关系

yum -y groupinstall "Development tools""Desktop Platform Development"
yum -y install pcre-devel openssl-devel
 
tar xf apr-1.5.0.tar.bz2
cd apr-1.5.0
./configure --prefix=/usr/local/apr
make && make install
cd ..
 
tar xf apr-util-1.5.3.tar.bz2
cd apr-util-1.5.3
./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr
make && make install
cd ..

编译安装httpd

tar xf httpd-2.4.10.tar.bz2
cd httpd-2.4.10
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24--enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/--enable-modules=most --enable-mpms-shared=all --with-mpm=event
make && make install

修改PATH变量,让系统可以直接找到http的命令路径

[root@web-01 httpd-2.4.10]# vim/etc/profile.d/httpd.sh
export PATH=/usr/local/acaphe/bin:$PATH
[root@web-01 httpd-2.4.10]# ./etc/profile.d/httpd.sh
[root@web-01 httpd-2.4.10]# which httpd
/usr/local/apache/bin/httpd

设置启动脚本

[root@web-01 httpd-2.4.10]# cp/usr/local/apache/bin/apachectl /etc/init.d/httpd24
[root@web-01 httpd-2.4.10]# vim /etc/init.d/httpd24
#!/bin/sh
# chkconfig: 35 85 15      #设置服务识别参数,3、5级别启动,启动顺序85,关闭顺序15
# description: Apache   #服务描述信息
[root@web-01 ~]# chkconfig --add httpd24
[root@web-01 ~]# chkconfig --level 35 httpd24 on
[root@web-01 ~]# chkconfig --list httpd24
httpd24          0:off  1:off  2:off  3:on   4:off  5:on   6:off

修改httpd配置文件设置监听的端口

[root@web01 ~]# vim /etc/httpd24/httpd.conf
Listen 1.1.1.1:80
Listen 172.16.4.100:80

启动服务并访问验证

[root@web01 ~]# service httpd24 start
[root@web01 ~]# netstat -lnt | grep 80
tcp       0      0 172.16.4.100:80             0.0.0.0:*                   LISTEN     
tcp       0      0 1.1.1.1:80                  0.0.0.0:*                   LISTE

LAMP之AMP分离+XCache加速

虚拟主机配置

编辑主配置文件,注释中心主机,启用虚拟主机选项

[root@web01 ~]# vim /etc/httpd24/httpd.conf
#DocumentRoot "/usr/local/apache/htdocs"  
Include /etc/httpd24/extra/httpd-vhosts.conf

设置虚拟主机

[root@web01 ~]# vim/etc/httpd24/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerName bbs.discuz.com
DocumentRoot "/www/bbs"
<Directory "/www/bbs">
Options none
AllowOverride none
Require all granted
</Directory>
 ErrorLog"/var/log/httpd/bbs-error-log"
 CustomLog"/var/log/httpd/bbs-access-log" common
</VirtualHost>
<VirtualHost *:80>
ServerName blog.wordpress.com
DocumentRoot "/www/blog"
<Directory "/www/blog">
Options none
AllowOverride none
Require all granted
</Directory>
 ErrorLog"/var/log/httpd/blog-error-log"
 CustomLog"/var/log/httpd/blog-access-log" common
</VirtualHost>

设置虚拟主机目录

[root@web01 ~]# mkdir -p /www/{bbs,blog}
[root@web01 ~]# echo bbs > /www/bbs/index.html
[root@web01 ~]# echo blog > /www/blog/index.html

访问测试虚拟主机

LAMP之AMP分离+XCache加速

LAMP之AMP分离+XCache加速

MariaDB 配置

配置/dev/sda3为lvm分区

[root@MariaDB-01 ~]# fdisk -l /dev/sda
 
Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000471dd
 
   DeviceBoot      Start         End      Blocks  Id  System
/dev/sda1  *           1          26      204800  83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        7859   62914560   8e  Linux LVM
/dev/sda3           7859       11775    31462303+ 8e  Linux LVM

创建逻辑卷

[root@MariaDB-01 ~]# lvcreate /dev/sda3
[root@MariaDB-01 ~]# vgcreate myvg /dev/sda3
[root@MariaDB-01 ~]# lvcreate -L 15G -n mydata myvg
[root@MariaDB-01 ~]# lvs
  LV     VG  Attr       LSize  Pool Origin Data%  Meta% Move Log Cpy%Sync Convert
  mydata myvg-wi-a----- 15.00g                                                   
  root   vg0 -wi-ao---- 20.00g                                                   
  swap   vg0 -wi-ao----  2.00g                                                   
  usr    vg0 -wi-ao---- 10.00g                                                   
  var    vg0 -wi-ao---- 20.00g

格式化并挂载

[root@MariaDB-01 ~]# mkfs.ext4 /dev/myvg/mydata
[root@MariaDB-01 ~]# vim /etc/fstab
/dev/myvg/mydata        /mydata                 ext4    defaults        0 0
[root@MariaDB-01 ~]# mkdir /mydata
[root@MariaDB-01 ~]# mount -a

创建MariaDB服务用户,并且设置数据目录的属主属组为服务用户

[root@MariaDB-01 ~]# groupadd -r mysql
[root@MariaDB-01 ~]# useradd -g mysql -r -s/sbin/nologin -M mysql
[root@MariaDB-01 ~]# mkdir /mydata/data
[root@MariaDB-01 ~]# chown -R mysql:mysql/mydata/data/

安装MariaDB并初始化

tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C/usr/local/
cd /usr/local/
ln -sv mariadb-5.5.43-linux-x86_64/ mysql
cd mysql/
chown -R mysql:mysql .
scripts/mysql_install_db --user=mysql--datadir=/mydata/data/

为MariaDB提供主配置文件

[root@MariaDB-01 mysql]# cpsupport-files/my-large.cnf /etc/my.cnf
[root@MariaDB-01 mysql]# vim /etc/my.cnf
thread_concurrency = 2     #设置CPU核心数量乘以2
datadir = /mydata/data     #设置数据文件目录
innodb_file_per_table = 1  #使用inoodb引擎,每表一个表文件

为MariaDB提供启动脚本

[root@MariaDB-01 mysql]# cpsupport-files/mysql.server /etc/rc.d/init.d/mysqld
[root@MariaDB-01 mysql]# chkconfig --add mysqld
[root@MariaDB-01 mysql]# chkconfig mysqld on
[root@MariaDB-01 mysql]# chkconfig --list mysqld
mysqld           0:off  1:off  2:on   3:on   4:on   5:on   6:off

修改PATH环境变量,让系统直接使用MariaDB相关命令

[root@MariaDB-01 ~]# vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
[root@MariaDB-01 ~]# . /etc/profile.d/mysql.sh

启动测试

相关推荐