我的编程空间,编程开发者的网络收藏夹
学习永远不晚

三台centos7主机分别部署httpd,php-fpm,mariadb

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

三台centos7主机分别部署httpd,php-fpm,mariadb


      CentOS 7, amp + xcache, rpm包,php-fpm;

                a) httpd, php, mariadb分别部署在一个单独的主机上;

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

                c) 为phpMyAdmim提供https服务;


分别三台centos 7主机分别部署 httpd , php-fpm  ,  mariadb

第一台 172.16.100.31 -->httpd

第二台 172.16.100.32 -->php-fpm    分别在2台虚拟主机上部署wordpress和phpmyadmin

第三台 172.16.100.33 -->mariadb

开始之前 首先把iptables 和SElinux给关闭了  方便测试

        #iptables -F

        #setenforce 0

那么我们先从第一台开始:

        #安装htppd

yum -y instal httpd

        #以FQDN配置2个虚拟主机的文件:

[root@localhost ~]# vim /etc/httpd/conf.d/vhost1.conf 

<VirtualHost 172.16.100.31:80>

ServerName www1.wufeng.com

DocumentRoot "/data/vhost/www1"

ProxyRequests on

DirectoryIndex index.php

ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.100.32:9000/data/vhost/www1/$1        动态资源代理转发给第2台主机

        <Directory "/data/vhost/www1">

                Options None

                AllowOverride None

                Require all granted

        </Directory>

</VirtualHost>

[root@localhost ~]# vim /etc/httpd/conf.d/vhost2.conf 

<VirtualHost 172.16.100.31:80>

ServerName www2wufeng.com

DocumentRoot "/data/vhost/www2"

ProxyRequests on

DirectoryIndex index.php

ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.100.32:9000/data/vhost/www2/$1    动态资源代理转发给第2台主机

        <Directory "/data/vhost/www2">

                Options None

                AllowOverride None

                Require all granted

        </Directory>

</VirtualHost>

            #修改etc下的2个配置文件指定NDS以及域名解析

[root@localhost ~]# vim /etc/resolv.conf 

# Generated by NetworkManager

DNS=172.16.100.31

nameserver 172.16.0.1

            #本地域名解析

[root@localhost ~]# vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

172.16.100.31 www1.wufeng.com www2.wufeng.com

        #创建静态默认文件:

[root@localhost ~]# mkdir -pv /data/vhost/www{1,2}

[root@localhost ~]# vim /data/vhost/www1/index.html

<h2>峰哥1第1台物理机静态数据    172.16.100.31</h2>

[root@localhost ~]# vim /data/vhost/www2/index.html

<h2>峰哥2第1台物理机静态数据    172.16.100.31</h2>

        #然后测试本机静态数据是否可以正常访问

================================================================

           

第二台主机:

        #向要安装php-fpm

yum -y install php-fpm

        #修改配置文件

[root@localhost ~]# vim /etc/php-fpm.d/www.conf 

listen = 172.16.100.32:9000        监听本机地址端口

listen.allowed_clients = 172.16.100.31        允许第一台主机连接


        #创建资源映射目录及文件

mkdir -pv /data/vhost/www{1,2}


        #写入测试php的文件

[root@localhost ~]# vim /data/vhost/www1/index.php

<h2>第2台物理机a</h2>

<?php

        $conn = mysql_connect('172.16.100.33','testuser','testpass');

        if($conn)

                echo "OK";

        else

                echo "Failure";

        phpinfo();

?>

        #然后安装加速器php-xcache

yum -y install php-xcache

        #然后安装wordpress以及php-myadmin

        #我们要把这2个程序分别部署在第2台主机上的2个分别的资源映射路径下

        #我是直接在ftp服务器上下载的所以直接就解压了

     

       #首先我们先搞定wordpress

[root@localhost ~]# unzip wordpress-4.3.1-zh_CN.zip 


        #并移动至第一个虚拟主机的资源映射路径下

[root@localhost ~]# mv wordpress /data/vhost/www1

        #cd进入该目录下并且修改配置文件

        #注意这个配置文件里面添加的是第3台主机上的数据库信息我们当前还没有创建数据库可以先修改,之后在以这个配置创建数据库;

        #修改配置文件名并修改之;

[root@localhost ~]# cd /data/vhost/www1/wordpress/

[root@localhost wordpress]# ln -s wp-config-sample.php wp-config.php 

[root@localhost wordpress]# vim wp-config.php

// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //

define('DB_NAME', 'wpdb');

define('DB_USER', 'wpuser');

define('DB_PASSWORD', 'wppass');

define('DB_HOST', '172.16.100.33');            这里的地址是指向第3台主机的数据库地址

define('DB_CHARSET', 'utf8');

define('DB_COLLATE', '');

那么wordpress基本上已经配置好了 不急于测试 下面把php-myadmin也一起安装了

        #php-myadmin也是在ftp服务器上下载的所以直接解压了

[root@localhost ~]# unzip phpMyAdmin-4.4.14.1-all-languages.zip 

        #并且放在第2台主机上的第2个虚拟主机资源映射路径下;

[root@localhost ~]# mv phpMyAdmin-4.4.14.1-all-languages /data/vhost/www2/

        #cd进该目录下并且修改文件名修改配置

[root@localhost ~]# cd /data/vhost/www2/            进入目录

[root@localhost www2]# ln -s phpMyAdmin-4.4.14.1-all-languages myadmin        创建一个链接

[root@localhost www2]# cd myadmin/        进入目标目录

[root@localhost myadmin]# ln -s config.sample.inc.php config.inc.php        创建配置文件连接

[root@localhost myadmin]# vim config.inc.php

$cfg['blowfish_secret'] = '4pfPnJU4R8pA4WMWaQxD'; 

                                                           上面这2个单引号中间加上随机码 用openssl rand -base64 15 生成 用于通信加密

$i = 0;

$i++;

$cfg['Servers'][$i]['auth_type'] = 'cookie';

$cfg['Servers'][$i]['host'] = '172.16.100.33';                        这里这指向mysql数据库主机的地址

$cfg['Servers'][$i]['connect_type'] = 'tcp';

$cfg['Servers'][$i]['compress'] = false;

$cfg['Servers'][$i]['AllowNoPassword'] = false;

那么现在我们第2台主机的配置基本完成

=====================================================================================

下面再去第3台主机创建mysql数据库

第三台物理机:            唯一作用就是作为数据库

        #那么首先安装数据库

yum -y install mariadb-server

        #启动起来

systemctl start mariadb.service

        #然后授权创建用户

先进mysql  然后如下

mysql> GRANT ALL ON wpdb.* TO 'wpuser'@'172.16.%.%' IDENTIFIED BY 'wppass';

mysql> FLUSH PRIVILEGES;

mysql>  CREATE DATABASE wpdb;


=====================================================================================

那么现在可以测试php是否可以连接数据库了

http://www1.wufeng.com/   测试第一台主机的静态数据三台centos7主机分别部署httpd,php-fpm,mariadb

三台centos7主机分别部署httpd,php-fpm,mariadb

http://www2.wufeng.com/        第1台主机的静态数据连接成功

三台centos7主机分别部署httpd,php-fpm,mariadb

三台centos7主机分别部署httpd,php-fpm,mariadb

http://www1.wufeng.com/index.php    第2台物理机的第一个虚拟主机的动态数据访问成功

三台centos7主机分别部署httpd,php-fpm,mariadb三台centos7主机分别部署httpd,php-fpm,mariadb

http://www2.wufeng.com/index.php    第2台物理机的第二个虚拟主机的动态数据访问成功

三台centos7主机分别部署httpd,php-fpm,mariadb三台centos7主机分别部署httpd,php-fpm,mariadb

http://www1.wufeng.com/wordpress/index.php            测试转发第2台主机第一个虚拟主机

三台centos7主机分别部署httpd,php-fpm,mariadb三台centos7主机分别部署httpd,php-fpm,mariadb

http://www2.wufeng.com/myadmin/index.php            测试转发第2台主机第二个虚拟主机

三台centos7主机分别部署httpd,php-fpm,mariadb三台centos7主机分别部署httpd,php-fpm,mariadb

            #下面我们要给第2台物理主机的第2个虚拟主机上的php-myadmin提供https服务;

            #签署CA证书并为phpmyadmin提供https服务;

            #在第一台主机上安装mod_ssl模块 因为需要http来加载模块并启动443端口

[root@localhost CA]# yum install mod_ssl.x86_64 

            #然后在第2台主机上生成CA自签名证书;

1、生成密钥

            #首先进入CA目录下

[root@1 wordpress]# cd /etc/pki/CA/

            #在CA目录下生成密钥

[root@1 CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)

Generating RSA private key, 2048 bit long modulus

............................................................................+++

...............+++

e is 65537 (0x10001)

2、生成自签证书

[root@1 CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem 

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [XX]:CN

State or Province Name (full name) []:beijing

Locality Name (eg, city) [Default City]:beijing

Organization Name (eg, company) [Default Company Ltd]:wufeng

Organizational Unit Name (eg, section) []:ops

Common Name (eg, your name or your server's hostname) []:ca.wufeng.com

Email Address []:admin@wufeng.com

补充文件

[root@1 CA]# touch index.txt

[root@1 CA]# echo 01 > serial


            #然后在去第1台主机上生成请求签署文件以及密钥

在/etc/httpd/目录下创建一个目录

~]# mkdir ssl

~]# cd ssl



生成密钥

[root@1 ssl]# (umask 077; openssl genrsa -out httpd.key 1024)

Generating RSA private key, 1024 bit long modulus

.++++++

........................................++++++

e is 65537 (0x10001)


生成签署请求文件:

[root@1 ssl]# openssl req -new -key httpd.key -out httpd.csr 

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [XX]:CN

State or Province Name (full name) []:beijing

Locality Name (eg, city) [Default City]:beijing

Organization Name (eg, company) [Default Company Ltd]:wufeng

Organizational Unit Name (eg, section) []:ops

Common Name (eg, your name or your server's hostname) []:www2.wufeng.com    这个要和客户访问要加密的主机名一样

Email Address []:www1admin@wufeng.com    

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

复制给CA主机签署证书 

[root@1 ssl]# scp httpd.csr 172.16.100.32:/tmp

然后到centos7主机上签署文件

[root@2 CA]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt

连续2个yes   简写y


签署完成后 复制给请求主机

[root@2 CA]# scp certs/httpd.crt 172.16.100.31:/etc/httpd/ssl/


在请求主机上也就是第2台centos7上

编辑这个文件

[root@2 ~]# vim /etc/httpd/conf.d/ssl.conf 

DocumentRoot "/data/vhost/www2/myadmin"        这2个启用起来 把前面的#号去掉 改成自己的资源映射路径

ServerName www2.wufeng.com:443            主机名也改成自己的

SSLCertificateFile /etc/httpd/ssl/httpd.crt       指明签署的证书文件路径

SSLCertificateKeyFile /etc/httpd/ssl/httpd.key  指明私钥文件的路径

            #最重要的一条是需要做转发

            #需要在这里面定义<VirtualHost _default_:443>

ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.100.32:9000/data/vhost/www2/$1

 然后reload一下

然后ss -tnl 查看一下443端口起来没

在centos7 主CA机器上 测试基于https访问相应的主机;

                  

[root@localhost CA]# openssl s_client -connect 172.16.100.31:443 -CAfile /etc/pki/CA/cacert.pem

            #然后打开浏览器输入myadmin地址访问看看是否提供了https服务

三台centos7主机分别部署httpd,php-fpm,mariadb三台centos7主机分别部署httpd,php-fpm,mariadb三台centos7主机分别部署httpd,php-fpm,mariadb

三台centos7主机分别部署httpd,php-fpm,mariadb

三台centos7主机分别部署httpd,php-fpm,mariadb三台centos7主机分别部署httpd,php-fpm,mariadb




用winds上面的浏览器以ip的方式测试https

三台centos7主机分别部署httpd,php-fpm,mariadb


三台centos7主机分别部署httpd,php-fpm,mariadb




最后查看xcache服务启动没有

三台centos7主机分别部署httpd,php-fpm,mariadb三台centos7主机分别部署httpd,php-fpm,mariadb

最后可以做个压力测试

首先做httpd主机的静态数据测试:html

[root@localhost ~]# ab -c 100 -n 1000 http://www1.wufeng.com/data/vhost/www1/index.html        静态数据

Time per request:       21.244 [ms] (mean)                十次的测试数据稳定在这个数值

Time per request:       0.212 [ms] (mean, across all concurrent requests)

Transfer rate:          1995.00 [Kbytes/sec] received

            #动态数据测试info() php

[root@localhost ~]# ab -c 100 -n 1000 http://www1.wufeng.com/data/vhost/www1/index.php    

Concurrency Level:      100

Time taken for tests:   0.523 seconds

Complete requests:      1000

Failed requests:        0

Write errors:           0

Non-2xx responses:      1000

Total transferred:      226000 bytes

HTML transferred:       16000 bytes

Requests per second:    1913.59 [#/sec] (mean)

Time per request:       52.258 [ms] (mean)                十次的测试数据稳定在这个数值

Time per request:       0.523 [ms] (mean, across all concurrent requests)

Transfer rate:          422.33 [Kbytes/sec] received

            #测试wordpress动态数据

[root@localhost ~]# ab -c 100 -n 1000 http://www1.wufeng.com/data/vhost/www1/wordpress/index.php

Concurrency Level:      100

Time taken for tests:   0.517 seconds

Complete requests:      1000

Failed requests:        0

Write errors:           0

Non-2xx responses:      1000

Total transferred:      226000 bytes

HTML transferred:       16000 bytes

Requests per second:    1934.61 [#/sec] (mean)

Time per request:       51.690 [ms] (mean)                十次的测试数据稳定在这个数值

Time per request:       0.517 [ms] (mean, across all concurrent requests)

Transfer rate:          426.97 [Kbytes/sec] received

            #动态测试myadmin数据

[root@localhost ~]# ab -c 100 -n 1000 http://www2.wufeng.com/data/vhost/www2/myadmin/index.php

Document Path:          /data/vhost/www2/myadmin/index.php

Document Length:        16 bytes

Concurrency Level:      100

Time taken for tests:   0.520 seconds

Complete requests:      1000

Failed requests:        0

Write errors:           0

Non-2xx responses:      1000

Total transferred:      226000 bytes

HTML transferred:       16000 bytes

Requests per second:    1923.43 [#/sec] (mean)

Time per request:       51.990 [ms] (mean)                十次的测试数据稳定在这个数值

Time per request:       0.520 [ms] (mean, across all concurrent requests)

Transfer rate:          424.51 [Kbytes/sec] received

            #友情提示不要太奔放 比如:

[root@localhost ~]# ab -c 1000 -n 10000 http://www2.wufeng.com/data/vhost/www2/index.php

然后第2台 php主机就挂了

三台centos7主机分别部署httpd,php-fpm,mariadb

三台centos7主机分别部署httpd,php-fpm,mariadb


比较2个架构性能的差别

单台主机部署LAMP

三台主机分别部署LAMP

三台centos7主机分别部署httpd,php-fpm,mariadb


结论很明显 三台主机分别部署LAMP的性能是单台主机的2倍

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

三台centos7主机分别部署httpd,php-fpm,mariadb

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录