一、架构说明 当客户端访问Web服务器时,Web"/>

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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三台服务器实现动静分离访问+日志服务器相关的知识,希望对你有一定的参考价值。

技术分享

一、架构说明

 

当客户端访问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)

[[email protected] httpd-2.4.10]#useradd -r apache
[[email protected] 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
[[email protected] 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创建软链接

[[email protected] php-5.6.4]# ln -s/usr/local/php5.6.4/ /usr/local/php
[[email protected] 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提供配置文件

[[email protected] php-5.6.4]# mkdir -p /etc/php/php.d/
[[email protected] 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

[[email protected]  ]# systemctl start php-fpm

 

 

五、MySQL数据库服务器安装

 

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

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

 

2)、启动并查看数据库

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

 

3)、设置开机启动

[[email protected] ]#  systemctl enable mariadb.service

 

4)、数据服务安全加固

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

  a)为root用户设置密码

  b)删除匿名账号

  c)取消root用户远程登录

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

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

通过这几项的设置能够提高mysql库的安全[[email protected] ~]# 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服务器连接数据库

[[email protected] ~]# cd /var/www/html/pma/

[[email protected] pma]# cp config.sample.inc.php config.inc.php

[[email protected] 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服务器)

[[email protected] ~]# yum install rsyslog-mysql

 

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

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

 

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

查看脚本位置:[[email protected] ~]# 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 服务器:[[email protected] ~]# vim /etc/rsyslog.conf

*.*                                                     @192.168.1.5

重启服务

systemctl restart rsyslog.service

 

PHP 服务器:[[email protected] ~]# vim /etc/rsyslog.conf

*.*                                                     @192.168.1.5

重启服务

systemctl restart rsyslog.service

 

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

a、安装loganalyzer

[[email protected] ~]# tar xf loganalyzer-3.6.5.tar.gz

[[email protected] ~]# mv loganalyzer-3.6.5  syslog

以上是关于三台服务器实现动静分离访问+日志服务器的主要内容,如果未能解决你的问题,请参考以下文章

Nginx——Nginx主要应用之动静分离

Nginx——Nginx主要应用之动静分离

图文详解 配置Nginx+Tomcat负载均衡动静分离集群

HAProxy动静分离和会话粘性实例

Web架构之单机时代

nginx实现动静分离