三臺服務器實現動靜分離訪問+日誌服務器

wKiom1ap0KyTGhilAAGR4HR2Gl8075.png

1、架構說明
php

 

當客戶端訪問Web服務器時,Web服務器根據客戶端訪問的資源進行判斷,若是是靜態的頁面Web服務器就直接返回給給客戶端,若是是動態的頁面,Web服務器就請求PHP服務器進行解析,在解析過程有須要MySQL數據的PHP服務器就請求MySQL服務器,PHP服務器解析完後封裝發送給Web服務器,Webt器在封裝發送給客戶端。html

 

3、架構規劃(全爲CentOS 7環境)node

wKioL1ap0PSheqLDAABQc4cLCXw773.png

說明:WEB開戶httpd服務,PHP只開php-fpm服務便可(可停用機機的httpd服務),若是添加防火牆麻煩就直接關掉mysql

 

4、Web服務器上安裝httpd服務程序(最好用yum安裝,自動解決依賴)web

 

1)安裝httpd程序依賴apr程序包sql

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程序包apache

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
vim

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

 

 

5、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

 

 

5、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';-------這裏測試爲*.*,生產環境直接指定到庫,

 

6、最後配置

 

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

 

7、測試效果

 

1)、在Windows客戶端測試

wKiom1ap0K_TkvrwAAFQ7K5bQX8905.png

數據庫管理測試

wKioL1ap0PjS3y2DAADchUu7AOg417.png

 

8、功能擴展

(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(下面是之前抓的圖,步驟是同樣的)

wKiom1ap0LGi892cAABcChlREcg474.png

點here開始安裝

wKioL1ap0PrDQkt8AADDkDeZGIc874.png

關閉SELINUX

wKioL1ap0PvDFqK6AAA3fqFz8Yk683.png

關了就OK

wKiom1ap0LTjWVXzAAAgpIqJjcc900.png

wKiom1ap0LjgYA9FAACOTYTHgX8640.png

wKiom1ap0LqyrOIZAACwrUvGqts194.png

wKioL1ap0QKQl0qXAAA1zZuf6Ps366.png

wKiom1ap0MKizHW9AAOYec_szQE944.png


 

 

如下配置說明:

若是上面兩個網站有靜態頁面,就直接走本機靜態在本機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目錄下面沒有仔細去找有沒有靜態頁面)

相關文章
相關標籤/搜索