通過fast-cgi方式在三臺主機部署phpwind并設置為https站點

通常來說httpd用來處理靜態的網頁請求,動態的資源請求以前是通過CGI的方式進行處理的,但是CGI的方式的處理過程是這樣:有動態資源請求,服務器會fork一個CGI進程進行資源處理,處理完成后這個進程會退出,當再有新的動態資源請求,又會fork一個進程,這樣的效率是很低的。后來就有了通過加載php模塊的方式,即:httpd服務器啟動之后會自動加載php動態資源處理模塊,采用進程間通信方式進行處理動態資源,當有動態資源請求的時候會通過這個php模塊進行處理,這樣就不需要再頻繁啟動CGI進程了,但是每次修改php配置文件都需要重啟httpd進程來重讀配置。以此就衍生了fast-cgi的處理方式。

fast-cgi和cgi的區別在于:

  • 當有動態資源請求的時候cgi要fork一個cgi進程來處理,然后退出cgi進程,效率低下;

  • fast-cgi通過php-fpm進程管理器進行php進程的管理,這個進程是常駐類型的,當有動態資源請求的時候會通過php代理模塊自動轉發到后臺的php進程進行處理,這樣就大大提高了效率;

  • fast-cgi的httpd和php可以部署在同一臺主機,也可以分開部署,更靈活的應對不同的業務場景;

下面詳細介紹通過fast-cgi的方式在三臺不同的主機之間通過lamp部署phpwind:

三臺主機ip配置:

httpd主機:192.168.11.152

php主機:192.168.11.154

mariadb主機:192.168.11.155

在實驗之前先關閉selinux和防火墻,以方便實驗的進行。

  1. 三臺主機需要安裝各自的組件:

    1. httpd主機:安裝httpd;

      yum install -y httpd

    2. php主機:安裝php-fpm組件和php-mysql組件等;

       yum install php-fpm

    3. mariadb主機:安裝mariadb-server提供數據庫服務;

       yum install mariadb-server

      注意:

      php-fpm是php的進程管理器,負責設置啟動多少個php進程,最大空閑進程等信息。在php5.3,php-fpm默認是不提供的,而是作為第三方補丁包的方式,如果需要還要進行編譯安裝。所以此處采用php5.4,而centos7之后默認提供php5.4的安裝包,所以此處主機都以centos7為例進行介紹。

  2. 配置php主機的php-fpm配置文件,位于/etc/php-fpm.d/www.conf,有以下幾項需要修改:

     listen = 192.168.11.154:9000 #修改服務監聽在本地哪個地址的哪個端口上,如果為空則表示本機所有地址# listen.allowed_clients = 192.168.11.152 #允許那臺主機作為客戶端連接到本php服務器# php_value[session.save_path] = /var/lib/php/session #此處為php的session會話路徑,默認此路徑不存在,需要手動創建# user = apache #默認進程運行用戶# group = apache #默認進程運行組#

    手動創建php session路徑,并設置路徑屬主屬組為apache:

     mkdir -pv /var/lib/php/session chown apache:apache /var/lib/php/session

    啟動php-fpm服務:

     systemctl start php-fpm
  3. 在ttpd主機的/etc/httpd/conf.d路徑下創建virtualhosts.conf的配置文件,配置文件如下:

    通過fast-cgi方式在三臺主機部署phpwind并設置為https站點

    注意:

    首先需要確保httpd已經加載了:proxy_fcgi_module (shared)模塊,通過httpd -M命令查看;

    proxyrequests off表示關閉正向代理;

    ProxyPassMatch ^/(.*.php)$ fcgi://192.168.11.154:9000/data/mysite/www/html/$1表示當有后綴名為php的動態資源請求的時候轉發到ip位192.168.11.154的主機進行處理;

  4. 在httpd服務器把phpwind壓縮包拷貝到配置文件指定的documentroot路徑,即/data/mysite/www/html路徑下:

    通過fast-cgi方式在三臺主機部署phpwind并設置為https站點

    注意:

    此處把phpwind路徑中的upload做了一個軟連接到此處,方便管理。如果要允許通過軟連接的方式訪問站點,則配置文件需要加上options followsymlinks選項;

  5. 在php主機建立同樣的documentroot路徑,然后把phpwind也拷貝到此路徑下并做軟連接。原因是因為phpwind既有靜態資源也有動態資源,靜態資源通過httpd服務器提供,動態資源通過php主機提供,所以兩臺主機都需要提供此路徑和phpwind文件。

  6. 此時瀏覽器通過192.168.11.152/phpwind應該就可以訪問到phpwind了,然后按照phpwind的設置向導進行數據庫的配置:

    通過fast-cgi方式在三臺主機部署phpwind并設置為https站點

  1. 在mariadb服務器創建數據庫和用戶:

     mysql -uroot -p #root用戶登錄數據庫# create database phpwind; #創建phpwind數據庫# grant all on phpwind.* to 'phpwind'@'192.168.11.%' identified by '1234567a'; #授權phpwind用戶只能從192.168.11.*網段登錄數據庫并對phpwind數據庫具有所有權限#

    注意:

    mariadb數據庫默認會做ip地址到主機名的反向解析,所以需要在配置文件中關閉此功能:

    /etc/my.cnf.d/server.cnf的[mysqld]下添加skip_name_resolve=ON即可;

  2. 按照創建的數據庫信息填寫即可:

    通過fast-cgi方式在三臺主機部署phpwind并設置為https站點

至此,通過fast-cgi部署phpwind成功。

  1. 接下來通過openssl為站點部署https和dns,此處把mariadb服務器也作為dns服務器和CA服務器:

    1. 部署dns服務器:

       yum install bind #通過安裝bind部署dns#
    2. 修改/etc/named.conf配置文件:

       listen-on port 53 { 127.0.0.1; 192.168.11.155; }; #修改本地監聽地址# allow-query     { any; }; #允許所有主機做查詢# dnssec-enable no; #禁止dnssec# dnssec-validation no; #禁止dnssec#
    3. 修改/etc/named.rfc1912.zones,配置zone文件:

       zone "phpwind.wzh" IN {         type master;         file "phpwind.wzh.zone"; }  #添加phpwind.wzh站點的zone配置#
    4. 在/var/named/下創建phpwind.wzh.zone文件,配置如下:

      通過fast-cgi方式在三臺主機部署phpwind并設置為https站點

  2. 配置CA服務器:

    1. 生成CA私鑰文件和自簽名證書:

       (umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048) openssl req -new -x509 –key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem
    2. 生成index.txt和serial文件:

       touch /etc/pki/CA/index.txt echo 01 > /etc/pki/CA/serial
    3. httpd安裝mod_ssl模塊:

       yum install -y mod_ssl
    4. 生成本地私鑰文件和證書申請文件,然后發給CA服務器做證書簽發:

       (umask 066; openssl genrsa -out /etc/pki/tls/private/test.key 2048) openssl req -new -key /etc/pki/tls/private/test.key -days 365 -out etc/pki/tls/test.csr openssl ca -in /tmp/test.csr –out /etc/pki/CA/certs/test.crt -days 365

      注意:

      httpd服務器的證書申請文件的默認國家,省,公司名稱三項必須和CA一致 。

      CommonName必須和網站名一致。

    5. 修改/etc/httpd/conf.d/virtaulhosts.conf文件為:

      通過fast-cgi方式在三臺主機部署phpwind并設置為https站點

    6. 瀏覽器導入CA自簽名證書,然后通過https://www.phpwind.wzh/phpwind/index.php訪問站點,如果正常,則實驗成功:

      通過fast-cgi方式在三臺主機部署phpwind并設置為https站點

原創文章,作者:王子豪,如若轉載,請注明出處:http://www.www58058.com/77434

(0)
王子豪王子豪
上一篇 2017-06-03 15:15
下一篇 2017-06-04 11:25

相關推薦

  • Linux基礎入門

    Linux基礎入門 1、Linux發行版及哲學思想 1.1 Linux發行版          Linux發行版(Linux Distribution,也被叫做GUN/Linux發行版),為一般用戶預先集成好的Linux操作系統及各種應用軟件。Linux發行版通常包含了包括桌面環…

    Linux干貨 2016-02-28
  • MAN 手冊各章節功能介紹及快捷鍵鍵位整理

    MAN 手冊各章節功能介紹及快捷鍵鍵位整理   Linux提供了豐富的幫助手冊,當你需要查看某個命令的參數時不必到處上網查找,只要man一下即可。  1、Linux 的man手冊共有以下幾個章節:         1章節:用戶命令     …

    Linux干貨 2016-10-19
  • Apache-httpd工作模型

    httpd   httpd是由apache軟件基金會開發的一款著名的web服務器軟件。由于其開放源代碼,并且擁有跨平臺、功能強大、安全穩定等特性,而被廣泛使用。早期httpd是在修修補補的基礎上成長起來的,所以早期也叫作a pachey server,由于開發httpd的組織叫作apache,因此httpd也被稱作apache。httpd有三個長線維護版本,…

    Linux干貨 2017-02-15
  • 磁盤管理

    一、知識整理 1、每個扇區:512字節;每個柱面:256個磁頭*63個扇區*512字節,大概為8M。centos6中分區使用起始結束柱面;centos7中分區使用起始結束扇區。EBR:擴展分區的第一個扇區。 2、MBR:master root record,1982年,使用32位表示扇區數,分區不超過2T。其中,一共512bytes字節,446bytes為b…

    Linux干貨 2016-08-29
  • shell通配符與正則表達式

        通配符是系統level的 而正則表達式需要相關工具的支持: egrep, awk, vi, perl。在文本過濾工具里,都是用正則表達式,比如像awk,sed等,是針對文件的內容的。通配符多用在文件名上,比如查找find,ls,cp,等等。 1.通配符       (1)…

    Linux干貨 2016-02-28
  • 第七周小練習

    1.創建一個10G分區,并格式為ext4文件系統 (1)要求其block大小為2048,預留空間百分比為2,卷標為MYDATA,默認掛載屬性包含acl (2)掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳 fdisk /dev/sdb n p 1 +10G w mke2fs -t&nbs…

    Linux干貨 2017-01-05
欧美性久久久久