httpd, php, mariadb分离式的部署在三台主机上测试性能

CentOS7, amp + xcache,编译安装,php-fpm;

a) 分别深度:httpd, php, mariadb分别部署在一个单独的主机上,以及都在同一主机;

b) 一个虚拟主机提供phpMyAdmin,另一个虚拟主机提供wordpress;

c) 为phpMyAdmim提供https服务;

对以上所有部署做压力测试,并对比测试结果,写出测试报告;

环境:

此处用三台主机分别分离提供不同服务:

172.16.1.4------->提供httpd服务

172.16.1.3------->提供mariadb-server服务

172.16.1.2------->提供php-fpm  php-mysql  xcache服务

一、172.16.1.2服务器部署httpd服务:


1、安装httpd服务程序

[[email protected]~]# yum -y install httpd

[[email protected]~]# vim /etc/httpd/conf/httpd.conf

2、建立虚拟主机

3、建立网页及相关路径

[[email protected]~]# mkdir -p /var/www/html/www1

[[email protected]~]# mkdir -p /var/www/html/www2

[[email protected]~]# echo "www1.link.com" > /var/www/html/www1/index.html

[[email protected]~]# echo "www2.link.com" > /var/www/html/www2/index.html

4、启动下服务我们测试下虚拟主机是否正常

[[email protected]~]# curl www1.link.com

www1.link.com

[[email protected]~]# curl www2.link.com

www2.link.com

二、在172.16.1.2服务器上部署安装php-fpm


1、安装php-fpm php-mysql php-mbstring程序

[[email protected]~]# yum -y install php-fpm php-mysql php-mbstring

2、编辑/etc/php-fpm.d/www.conf

[[email protected]~]# vim /etc/php-fpm.d/www.conf

修改以下内容:

listen= 172.16.1.2:9000 #设置php服务器监听地址即监听本地能够与外部通信的地址

listen.allowed_clients= 172.16.1.4 #监听具有httpd服务的IP地址

3、建立以下文件并且启动php-fpm服务,查看下是否已经监听

[[email protected]~]# mkdir /var/lib/php/session

[[email protected]~]# chown apache.apache /var/lib/php/session/

[[email protected]~]# ls -ld /var/lib/php/session/

drwxrwx---.3 apache apache 21 9月  10 20:31 /var/lib/php/session/

[[email protected]~]# systemctl start php-fpm.service

[[email protected]~]# ss -tnl

State   Recv-Q   Send-Q   Local Address:Port       Peer Address:Port

LISTEN  0        128         172.16.1.2:9000       *:*

以上已经显示监听在php地址

4、在php服务器上建立与http服务器上网页DocumentRoot路径,并且编写php测试也,看看是否能够与http连接

[[email protected]~]# mkdir -p /var/www/html/www{1,2}

[[email protected]~]# vim /var/www/html/www1/index.php #虚拟主机1的php和httpd连接测试

Thisis ge de vhost1

<?php

phpinfo();

?>

[[email protected]~]# vim /var/www/html/www1/index.php #虚拟主机2的php和httpd连接测试

Thisis ge de vhost2

<?php

phpinfo();

?>

5、加载服务访问站点测试php和httpd连接是否正常

正常连接,所有我的PHP和httpd服务器连接成功。

三、在172.16.1.3服务器上部署mariadb服务


1.安装数据库,开启服务

[[email protected]~]# yum -y install mariadb-server

[[email protected]~]# systemctl start mariadb.service

2、创建数据库和授权等相关操作

MariaDB[(none)]> create database wpsdb; #创建WordPress所用数据库

MariaDB[(none)]> grant all on wpsdb.* TO ‘wpuser‘@‘172.16.%.%‘IDENTIFIED BY‘123456‘;  #授权WordPress用户

MariaDB[(none)]> create database pma; #授权phpmyadmin所用数据库

MariaDB[(none)]> grant all on pma.* TO ‘pmauser‘@‘172.16.%.%‘IDENTIFIED BY‘123456‘; #授权phpmyadmin的用户

3、在php服务器上建立php测试页,测试php是否可以正常连接数据

[[email protected]~]# vim /var/www/html/www1/index.php

Thisis ge de vhost1

<?php

$conn = mysql_connect(‘172.16.1.3‘,‘wpuser‘,‘123456‘);

if ($conn)

echo "ok";

else

echo "NO";

phpinfo();

?>

[[email protected]~]# vim /var/www/html/www2/index.php

Thisis ge de vhost2

<?php

$conn =mysql_connect(‘172.16.1.3‘,‘wpuser‘,‘123456‘);

if ($conn)

echo "ok";

else

echo "NO";

phpinfo();

?>

4、测试

显示OK,所以mariadb数据可以同php连接了,而且到现在分离式的LAMP平台就构建完成了!

四、部署下WordPress和phpMyadmin


部署WordPress:

1、将下载好的WordPress压缩包传到php主机上,解压缩,配置连接用户和密码,数据库地址

[[email protected]~]# unzip wordpress-3.9-zh_CN.zip

[[email protected]~]# mv wordpress /var/www/html/www1/

[[email protected]~]# cd /var/www/html/www1/wordpress/

[[email protected]]# mv wp-config-sample.php wp-config.php

[[email protected]]# vim wp-config.php

修改如下:

define(‘DB_NAME‘,‘wpsdb‘);

/**MySQL数据库用户名 */

define(‘DB_USER‘,‘wpuser‘);

/**MySQL数据库密码 */

define(‘DB_PASSWORD‘,‘123456‘);

/**MySQL主机 */

define(‘DB_HOST‘,‘172.16.1.3‘);

2、把WordPress这个目录个传到http服务器主页访问的路径下

[[email protected]]# scp -r wordpress/ [email protected]:/var/www/html/www1/

这里需要根据提示输入“yes”和root密码

部署phpMyadmin:

1、将下载好的phpMyadmin压缩包传到php主机上,解压缩,配置连接用户和密码,数据库地址

[[email protected]~]# tar -zxvf phpMyAdmin-4.0.10.20.tar.gz

[[email protected]~]# mv phpMyAdmin-4.0.10.20 /var/www/html/www2/

[[email protected]]# mv phpMyAdmin-4.0.10.20/ phpmyadmin

2、进入phpmyadmin目录下的libraries目录,编辑这个文件:

[[email protected]]# vim config.default.php

$cfg[‘blowfish_secret‘]= ‘V40VdxxM0rPrx8k2KYE‘; #添加随机字符

$cfg[‘Servers‘][$i][‘host‘]= ‘172.16.1.3‘; #数据库服务器地址

$cfg[‘Servers‘][$i][‘user‘]= ‘pmauser‘;

$cfg[‘Servers‘][$i][‘password‘]= ‘123456‘;

3、将配置好了的phpmyadmin目录传一份给httpd服务器虚拟主机对应的访问路径下

[[email protected]]# scp -r phpmyadmin/ [email protected]:/var/www/html/www2/

测试:

成功!下面进行压力测试:

[[email protected]~]# ab -c 1000 -n 10000 http://www1.link.com/wordpress

Thisis ApacheBench, Version 2.3 <$Revision:1430300 $>

Copyright1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensedto The Apache Software Foundation, http://www.apache.org/

Benchmarkingwp.linuxidc.com (be patient)

Completed1000 requests

Completed2000 requests

Completed3000 requests

Completed4000 requests

Completed5000 requests

Completed6000 requests

Completed7000 requests

Completed8000 requests

Completed9000 requests

Completed10000 requests

Finished10000 requests

ServerSoftware:        Apache/2.4.6

ServerHostname:        www1.link.com

ServerPort:            80

DocumentPath:          /wordpress

DocumentLength:        239 bytes

ConcurrencyLevel:      1000

Timetaken for tests:  3.081 seconds

Completerequests:      10000

Failedrequests:        0

Writeerrors:          0

Non-2xxresponses:      10002

Totaltransferred:      4690938 bytes

HTMLtransferred:      2390478 bytes

Requestsper second:    3245.20 [#/sec] (mean)

Timeper request:      308.147 [ms] (mean)

Timeper request:      0.308 [ms] (mean,across all concurrent requests)

Transferrate:          1486.63 [Kbytes/sec] received

从这段测试可以看出,没用加速比我们之前的测试的都要快!

五、在php服务器172.16.1.2上安装xcache进行缓存加速

1、安装php-xache

[[email protected]~]# yum -y install php-xcache

[[email protected]~]# systemctl restart php-fpm.service

2、编辑配置文件,把缓存大小调大测试效果

[[email protected]~]# vim /etc/php.d/xcache.ini

xcache.size = 300M

3、压力测试:

[[email protected]~]# ab -c 1000 -n 10000 http://www1.link.com/wordpress

Thisis ApacheBench, Version 2.3 <$Revision:1430300 $>

Copyright1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensedto The Apache Software Foundation, http://www.apache.org/

Benchmarkingwp.linuxidc.com (be patient)

Completed1000 requests

Completed2000 requests

Completed3000 requests

Completed4000 requests

Completed5000 requests

Completed6000 requests

Completed7000 requests

Completed8000 requests

Completed9000 requests

Completed10000 requests

Finished10000 requests

ServerSoftware:        Apache/2.4.6

ServerHostname:        www1.link.com

ServerPort:            80

DocumentPath:          /wordpress

DocumentLength:        239 bytes

ConcurrencyLevel:      1000

Timetaken for tests:  3.076 seconds

Completerequests:      10000

Failedrequests:        0

Writeerrors:          0

Non-2xxresponses:      10012

Totaltransferred:      4695628 bytes

HTMLtransferred:      2392868 bytes

Requestsper second:    3250.70 [#/sec] (mean)

Timeper request:      307.626 [ms] (mean)

Timeper request:      0.308 [ms] (mean,across all concurrent requests)

Transferrate:          1490.63 [Kbytes/sec]received

ConnectionTimes (ms)

min  mean[+/-sd] median  max

Connect:        0 46 208.7      2    3011

Processing:    0  69191.8    31    1575

Waiting:        0 68 191.7    31    1574

Total:        21 115 337.5    34    3040

通过测试对比,可以看到apache请求该页面的吞吐率,发现启用xcache后Requests per second有所提高,所以性能更好!

时间: 2024-08-23 23:54:10

httpd, php, mariadb分离式的部署在三台主机上测试性能的相关文章

在三台主机上分别安装httpd、php-fpm、MariaDB

1.A主机的IP 是172.16.25182.,B主机的IP是172.16.251.154,C主机的IP是eth1 172.16.254.35.1. 在A.B.C三台主机上分别安装httpd.php-fpm.MariaDB. (1)在A主机上安装httpd ~]# yum install -y httpd (2)在B主机上安装php-fpm ~]# yum install -y php-fpm php-mysql (3)在C主机上安装MariaDB ~]# yum install -y mari

Lamp部署于三台主机中

本次试验的目的主要是搭建LAMP部署于三台主机中:一台部署Http的,一台部署php-fpm,一台部署MariaDB..部署前准备好三台主机.     客户端发送请求过程:         当客户端发送静态资源请求时,httpd会自行处理.当客户端发送动态资源的请求时.httpd将自己作为反向代理,将请求发送给php-fpm主机,让其进行处理,当请求发送给php-fpm时,如果需要使用导数据时,通过mysql启动(php-mysql)时其与MariaDB通信:当然事先要授权远程登录才行. 一.部

使用三台主机部署LNMP

要求: 1.在三台主机上面搭建LNMP 2.搭建两个虚拟主机分别部署wordpress和phpMyadmin, 3.为后一主机提供https 实现步骤: 一.准备四台主机 nginx主机: 172.16.10.17/16   192.168.10.17/24 php主机: 192.168.10.27/24 mysql主机: 192.168.10.87/24 CA签证主机: 172.16.10.77 二.分别在三台主机上安装相关软件包 nginx主机:nginx php主机:php-fpm   p

MariaDB Galera Cluster环境搭建及高可用测试

一.服务器概况Galera Cluster需要至少三个节点,在此次实验过程中,三个节点IP地址:192.168.56.101192.168.56.102192.168.56.103OS为centos 7.2服务器配置:4G 内存,2核CPU,20G数据磁盘空间. 关闭防火墙: service iptables stop systemctl stop firewalld chkconfig iptables off 关闭SELinux: /etc/selinux/config中的SELINUX=d

三台主机分别部署LAMP

要求:httpd, php, mariadb分别部署在一个单独的主机上,一个虚拟主机提供phpMyAdmin,另一个虚拟主机提供wordpress,为phpMyAdmim提供https服务: 一. 分工三台主机 A  httpd主机   172.16.35.1 B  php-fpm主机 172.16.35.2 C  mariadb主机 172.16.35.3 为方便实验在这里关闭防火墙 #iptables-F #setenforce0 安装所需rpm包: 在A上yum -y install ht

MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)

MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)  OneAPM蓝海讯通7月3日 发布 推荐 4 推荐 收藏 14 收藏,1.1k 浏览 MariaDB 作为 Mysql 的一个分支,在开源项目中已经广泛使用,例如大热的 openstack,所以,为了保证服务的高可用性,同时提高系统的负载能力,集群部署是必不可少的. MariaDB Galera Cluster 介绍 MariaDB 集群是 MariaDB 同步多主机集群.它仅支持 XtraDB/ Inn

LAMP架构之httpd+(php-fpm)+mariadb

前言: FastCGI是语言无关的.可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能.众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能.伸缩性.Fail-Over特性等等. CentOS 7: httpd-2.4:rpm包默认编译支持了fcgi模块: php-fpm包:专用于将php运行于fpm模式: =============================

三台主机部署lamp(fast-cgi)

实验要求: 创建两个虚拟主机web1,web2,分别跑phpMyadmin.wordpress ,且为phpMyadmin提供https服务. 三台主机: 1.Cehtos7.2 跑httpd.2-4 一块网卡 eno16777728 桥接模式 ip 172.16.254.79/16 2.centos7.2 跑php-fpm 一块网卡eno16777728 桥接模式 ip 172.16.250.205/16 3.centos7.2 跑mariadb-server 一块网卡 eno16777728

CentOS 7下分离于三台主机搭建基于FCGI的LAMP

一.要求 CentOS 7, lamp (php-fpm):(1) 三者分离于三台主机:(2) 一个虚拟主机用于提供phpMyAdmin:另一个虚拟主机用于提供wordpress:(3) xcache 规划 第一台 192.168.1.112 httpd-2.4.6-40.el7.centos.x86_64 httpd服务器 第二台 192.168.1.113 php-fpm-5.4.16-36.el7_1.x86_64 php-fpm服务器 第三台 192.168.1.114 mariadb-