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