码迷,mamicode.com
首页 > 其他好文 > 详细

三台服务器实现动静分离访问+日志服务器

时间:2016-01-28 19:27:07      阅读:408      评论:0      收藏:0      [点我收藏+]

标签:服务器   防火墙   local   客户端   三台   

技术分享

一、架构说明

 

当客户端访问Web服务器时,Web服务器根据客户端访问的资源进行判断,如果是静态的页面Web服务器就直接返回给给客户端,如果是动态的页面,Web服务器就请求PHP服务器进行解析,在解析过程有需要MySQL数据的PHP服务器就请求MySQL服务器,PHP服务器解析完后封装发送给Web服务器,Webt器在封装发送给客户端。

 

三、架构规划(全为CentOS 7环境)

技术分享

说明:WEB开户httpd服务,PHP只开php-fpm服务即可(可停用机机的httpd服务),如果添加防火墙麻烦就直接关掉

 

四、Web服务器上安装httpd服务程序(最好用yum安装,自动解决依赖)

 

1)安装httpd程序依赖apr程序包

tar xf apr-1.5.0.tar.bz2
cd apr-1.5.0
./configure --prefix=/usr/local/apr
make && make install

2)安装httpd程序依赖apr-util程序包

tar xf apr-util-1.5.3.tar.bz2
 cdapr-util-1.5.3
 ./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr/
 make&& make install

3)安装http程序包(下面安装路径不需要从新命名,因为原来没安httpd)

[root@abc httpd-2.4.10]#useradd -r apache
[root@node-2 httpd-2.4.10]# ./configure--prefix=/usr/local/apache \
--sysconfdir=/etc/apache --with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ --enable-so--enable-ssl \
--enable-cgi --enable-rewrite --with-zlib --with-pcre--enable-modules=most \
--enable-mpms-shared=all --with-mpm=prefork
[root@abc httpd-2.4.10]# make -j 4 &&make install

注:上面配置时可能会出现openssl old,直接安装openssl-devel就行了

 

4)启用http的相关php-fpm模块/etc/httpd/conf/httpd.conf   操作如下:

Include    /etc/httpd/conf/httpd-vhosts.conf      # 添加虚拟主机配置路径

ServerName     abc.gayj.com:80                                 # 配置服务器名

DirectoryIndex   index.html index.php                   # 配置默认主页

++++++++++++添加下面二行+++++++++++++++++++++++++++++++

AddType application/x-httpdp-php .php

AddType application/x-httpdp-php-source .phps

 

5)添加虚拟主机配置文件以及动态主机指向 vim /etc/httpd/conf/httpd-vhosts.conf

DirectoryIndex index.php

<VirtualHost *:80 >

        DocumentRoot "/var/www/html/wordpress"

        ServerName lgq.php.com

        ServerAlias php.com

        Errorlog "logs/php.com-error_log"

        CustomLog "logs/php.com-access_log" combined

        ProxyRequests Off

           ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.1.4:9000/var/www/html/wordpress/$1

         <Directory "/var/www/html/wordpress">

                AllowOverride None

                Options None

                Require all granted

          </Directory>

</VirtualHost>

 

<VirtualHost *:80 >

        DocumentRoot "/var/www/html/pma"

        ServerName sql.mysql.com

        ServerAlias mysql.com

        Errorlog "logs/mysql.com-error_log"

        CustomLog "logs/mysql.com-access_log" combined

        ProxyRequests Off

           ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.1.4:9000/var/www/html/pma/$1

         <Directory "/var/www/html/pma">

                AllowOverride None

                Options None

                Require all granted

          </Directory>

</VirtualHost>

##############################################################################################

<VirtualHost *:80>

      DocumentRoot "/var/www/html"

      ServerName abc.gayj.com

      ServerAlias gayj.com

      <Directory "/var/www/html">

             AllowOverride None

             Options None

             Require all granted

      </Directory>

 

</VirtualHost>

 

<VirtualHost *:80>

      DocumentRoot "/var/www/html/wordpress"

      ServerName lgq.php.com

      ServerAlias lgq.com

      <Directory "/var/www/html/wordpress">

             AllowOverride None

             Options None

             Require all granted

      </Directory>

 

</VirtualHost>

 

<VirtualHost *:80>

      DocumentRoot "/var/www/html/pma"

      ServerName sql.mysql.com

      ServerAlias mysql.com

      <Directory "/var/www/html/pma">

             AllowOverride None

             Options None

             Require all granted

      </Directory>

 

</VirtualHost>

 

6)启动httpd服务查看状态:

systemctl start httpd.service

systemctl status httpd.service

 

 

五、PHP服务器上安装PHP程序

 

创建php的运行用户apache:useradd -r  apache

1)编译安装php

tar xf php-5.6.4.tar.xz
cd php-5.6.4
./configure--prefix=/usr/local/php5.6.4 --with-openssl \
--enable-mbstring --with-freetype-dir --with-jpeg-dir--with-png-dir \
--with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets \
--enable-fpm --with-mcrypt  --with-config-file-path=/etc/php \
--with-config-file-scan-dir=/etc/php/php.d --with-bz2  --user=bbs
make
-j 4 && make install

2)为/usr/local/php-5.6.4创建软链接

[root@lgq php-5.6.4]# ln -s/usr/local/php5.6.4/ /usr/local/php
[root@lgq php-5.6.4]# ll /usr/local/php
lrwxrwxrwx 1 root root 20 May  3 18:42 /usr/local/php ->/usr/local/php5.6.4/

3)为PHP提供配置文件

[root@lgq php-5.6.4]# mkdir -p /etc/php/php.d/
[root@lgq php-5.6.4]# cp
php.ini-development  /etc/php/php.ini

4)配置php-fpm

systemctl enable php-fpm                       # 设置开机启动

systemctl is-enabled php-fpm               # 查看设置结果

5)编辑php-fpm配置文件 /etc/php-fpm.d/www.conf

listen = 192.168.1.4:9000                  # 设置成本机IP,如果不对外就设置成127.0.0.1

listen.allowed_clients = 192.168.1.3         #允许客户端连接(这里设置成WEB服务器IP----因为WEB要请求动态页面)

pm.max_children = 60
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 8

6)启动php-fpm

[root@lgq  ]# systemctl start php-fpm

 

 

五、MySQL数据库服务器安装

 

1)、安装数据库,mariadb-server

[root@sql ]#  yum install mariadb-server

 

2)、启动并查看数据库

[root@sql ]#  systemctl start mariadb.service

 

3)、设置开机启动

[root@sql ]#  systemctl enable mariadb.service

 

4)、数据服务安全加固

安装完mysql-server 会提示可以运行mysql_secure_installation。运行mysql_secure_installation会执行几个设置:

  a)为root用户设置密码

  b)删除匿名账号

  c)取消root用户远程登录

  d)删除test库和对test库的访问权限

  e)刷新授权表使修改生效

通过这几项的设置能够提高mysql库的安全[root@www ~]# mysql_secure_installation

 

5)、授权给PHP服务器账号,密码(这里偷懒了,到phpMyAdmin中去创建wordpress数据库)

GRANT  ALL  PRIVILEGES  ON  *.*  TO ‘root‘@‘192.168.1.4‘  IDENTIFIED  BY  ‘123456‘;-------这里测试为*.*,生产环境直接指定到库,

 

六、最后配置

 

1)、解压wordpress和phpMyAdmin到以下两个目录(httpd服务器和PHP服务器各一份)

PHP服务器:/var/www/html/目录下(如下)

/var/www/html/wordpress

/var/www/html/pma                                   #这里是把phpMyAdmin…..              ln----->pma

 

Httpd服务器:/var/www/html/目录下

/var/www/html/wordpress

/var/www/html/pma                                   #这里是把phpMyAdmin…..              ln----->pma

 

2)、配置PHP服务器连接数据库

[root@lgq ~]# cd /var/www/html/pma/

[root@lgq pma]# cp config.sample.inc.php config.inc.php

[root@lgq pma]# vim config.inc.php

$cfg[‘Servers‘][$i][‘host‘] = ‘192.168.1.5‘;               # 这里改成数据库的IP地址,刚才在数据库中已经授权

 

3)、测试客户端,添加hosts文件    /etc/hosts

192.168.1.3      abc.gayj.com

192.168.1.3      lgq.php.com

192.168.1.3      sql.mysql.com

 

七、测试效果

 

1)、在Windows客户端测试

技术分享

数据库管理测试

技术分享

 

八、功能扩展

(1)、Rsyslog日志数据库服务器

 

1)、安装日志数据库驱动程序,rsyslog-mysql----------------(Mysql服务器)

[root@sql ~]# yum install rsyslog-mysql

 

2)、授权服务器账号,密码

GRANT ALL PRIVILEGES ON Syslog.* TO ‘Syslog‘@‘localhost‘ IDENTIFIED BY ‘Syslogpass‘;

 

3)、导入安装rsyslog-mysql 时所生成的 mysql-createDB.sql脚本

查看脚本位置:[root@sql ~]# rpm -ql rsyslog-mysql

/usr/lib64/rsyslog/ommysql.so

/usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql

 

4)、导入脚本:(两种方式,用其中一种):

1)、登陆mysql>source /usr/share/doc/rsyslog-mysql-7.4.7/createDB.sql

2)、#:]mysql -uUSER -hHOST -pPASSWORD < /usr/share/doc/rsyslog-mysql-7.4.7/createDB.sql

 

5)、配置服务端:

使用ommysql模块,在/etc/rsyslog.conf文件中配置(服务端不用开514,只加载模块就行了)

加载模块,开放端口

$ModLoad imudp

$UDPServerRun 514

$ModLoad ommysql

启用本地mysql数据库存Syslog,以Syslog用户,Syslogpass密码存储日志数据

 *.*                                                    :ommysql:192.168.1.5,Syslog,Syslog,Syslogpass

 

重启服务

systemctl restart rsyslog.service

 

 

6)、配置客户端(web服务器和PHP服务器)

web 服务器:[root@abc ~]# vim /etc/rsyslog.conf

*.*                                                     @192.168.1.5

重启服务

systemctl restart rsyslog.service

 

PHP 服务器:[root@lgq ~]# vim /etc/rsyslog.conf

*.*                                                     @192.168.1.5

重启服务

systemctl restart rsyslog.service

 

7)、架设loganalyzer网页日志管理系统--------192.168.1.4         主机:lgq.php.com

a、安装loganalyzer

[root@lgq ~]# tar xf loganalyzer-3.6.5.tar.gz

[root@lgq ~]# mv loganalyzer-3.6.5  syslog

[root@lgq ~]# cd syslog/contrib

[root@lgq ~]# chmod +x *.sh

[root@lgq ~]# ./configure.sh

[root@lgq ~]# ./securch

[root@lgq ~]# chmod 666 config.php

[root@lgq ~]# systemctl restart rsyslog.service

把所有文件复制到网站的/var/www/html/syslog目录下

 

b、在web服务器中加入虚拟主机配置 /etc/httpd/conf/httpd-vhosts.conf

注意:同样把PHP服务器上的syslog目录复制一份到WEB的网站目录下

 

<VirtualHost *:80 >

        DocumentRoot "/var/www/html/syslog"

        ServerName syslog.php.com

        Errorlog "logs/syslog.php.com-error_log"

        CustomLog "logs/syslog.php-access_log" combined

        ProxyRequests Off

           ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.1.4:9000/var/www/html/syslog.php/$1

         <Directory "/var/www/html/syslog.php">

                AllowOverride None

                Options None

                Require all granted

          </Directory>

</VirtualHost>

 

c、配置syslog中的数据库路径

配置/var/www/html/syslog/config.php

$CFG[‘Sources‘][‘Source1‘][‘DBServer‘] = ‘192.168.1.5‘;            # 数据库的IP地址

在数据库服务,授权:

GRANT ALL ON Syslog.* TO ‘Syslog‘@‘192.168.1.4‘ IDENTIFIED BY ‘Syslogpass‘;

FLUSH PRIVILEGES;

 

 

d、在测试客户端的hosts文件中在添加一行解析

192.168.1.3      abc.gayj.com

192.168.1.3      lgq.php.com

192.168.1.3      sql.mysql.com

192.168.1.3      syslog.php.com

 

8)、安装并测试

#打开浏览器运行下面的http://syslog.php.com/syslog/src/install.php(下面是以前抓的图,步骤是一样的)

技术分享

点here开始安装

技术分享

关闭SELINUX

技术分享

关了就OK

技术分享

技术分享

技术分享

技术分享

技术分享


 

 

以下配置说明:

如果上面两个网站有静态页面,就直接走本机静态在本机192.168.1.3的wordpress目录下建立了abc.html,测试时,

把php动态主机192.168.1.4 中的php-fpm服务停用,同样可以通过下面的lgq.php.com/abc.html访问,可以充分实现把一个网站的静态页面放

#在本机上机,动态放在php动态主机上,是可行的。本试验中:php动态主机是192.168.1.4 安装php服务,数据库192.168.1.5安装php-mysql,

安装静态主机是本机192.168.1.3(为什么这么证明呢,是因为wordpress目录下面没有仔细去找有没有静态页面)


三台服务器实现动静分离访问+日志服务器

标签:服务器   防火墙   local   客户端   三台   

原文地址:http://liguoqing.blog.51cto.com/327222/1739586

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!