NEIL's_學而時習之x不學無術~私藏IT技術經驗分享部落

關於部落格
NEIL. Cheng....寫作只是為了日後工作之備忘操作參考

本部落格文章撰寫前進邁向第五年(since 2009 ~至今)仍繼續推進分享IT學習!!About Windows/Linux Server,Virtualization


分享網誌: 由於,本人預先完成LAB後,才補上撰寫文章與截圖,若發現文圖對照說明有誤..本人將盡快校正,也請不吝指教! Thanks!

  • 153344

    累積人氣

  • 44

    今日人氣

    0

    訂閱人氣

[效能提升] Nginx 整合 PHP 實驗網頁"動靜態頁面分隔處理實現by Neil

 
實驗開始: 

Cent222:  檢視Neil Nginx 組態配置

vi /etc/nginx/nginx.conf 

我只要確定 http 敘述式裡有這一行,因稍後我的虛擬主機組態擋會對應到這路徑下

 include /etc/nginx/conf.d/*.conf;



接者我要編寫動靜網頁切割處理虛擬主機 配置: s1.neil0918u.com 

vi /etc/nginx/conf.d/s1.conf         #Part 1

#配置upstream  phpfpm 組態 加入server .223 與 .224 

 配置適當權重值weight 與 fail_timeout 健康檢查,當偵測其dead..將不將需求轉發該台主機


upstream phpfpm {
server 192.168.11.223:9000  weight=8 max_fails=0 fail_timeout=30s;
server 192.168.11.224:9000  weight=8 max_fails=0 fail_timeout=30s;
}


#限定靜態格式檔案處理交由local端虛擬主機處理

location ~* .(jpg|png|gif|flv|wma|wmv|asf|mp3|mmf|zip|rar)$

{
root /var/www/html/v2;
}


# 設定目錄存取權限: 僅允許192.168.11.0/24  與 192.168.20.0/24 網段存取該主機

location /{
allow 192.168.11.0/24;
allow 192.168.20.0/24;
deny all;
access_log /var/log/nginx/s1.access.log;
error_log /var/log/nginx/s1.err.log;
root /var/www/html/v2;
index  index.html index.htm;
#if ($host = 's1.neil0918u.com' ){
#rewrite ^/(.*)$ http://www.yahoo.com.tw/$1 permanent;
#}
}

#為虛擬主機加上https ssl 加密連線服務

listen 443;
ssl on;
ssl_certificate /var/www/html/v2/server.crt;
ssl_certificate_key /var/www/html/v2/server.key;
 


vi /etc/nginx/conf.d/s1.conf         #Part 2 : 動態網頁 fastcgi pass 配置

location ~.php$
{
fastcgi_pass phpfpm;                 #呼應剛剛定義 upstream phpfpm {...}
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/v2$fastcgi_script_name;   #資料路徑對應需一致
fastcgi_param PATH_INFO $fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
 


/etc/init.d/nginx reload ;            #.222 本身只處理靜態網頁故不需安裝PHP-FPM服務



[ 替.223 , .224  組態PHP-FPM 服務並啟動] : 以.223 為例 .224 也請照依此步驟DO不贅述

   
 vi /etc/php-fpm.d/www.conf        #修改以下配置

listen = 192.168.11.223:9000         #啟動192168.11.223:9000  服務供Nginx 聯繫

listen.allowed_clients = 192.168.11.222,127.0.0.1   #允許Nginx本體.222 存取php-fpm 服務



  /etc/init.d/php-fpm restart     #重新啟動;  別忘記開放 Port: 9000 供.222 存取


[Neil 現開始測試網頁靜態分離成果]

http://s1.neil0918u.com

隨意撰寫一個靜態網頁測試: 預設index  為 index.html     對應靜態處理無誤



接者我們寫一個index.php 測試 PHP-FPM 分散式處理


<?php

phpinfo();

?>

第一次連線 http://s1.neil0918u.com/index.php

我們可以看到System  抓到hostname 為 Cent223 這台主機  


再二次連線 http://s1.neil0918u.com/index.php 

我們可以看到System  抓到hostname 為 Cent224這台主機,已實現動靜網頁分離目標設計



由於我們index 優先順序為index.html 故優先抓到靜態index.html , 我們可調整為index.php

優先! 則無須再敲打完整的url,直接指定index.php 預設首頁了



[ 因.223,.224 兩台機器上有安裝MariaDB 5.5 我們撰寫一個連線資料庫程式簡單測試

vi mysql2.php  


<?php
$link=mysql_connect('localhost','root',XXXXXXX');
if(!$link) echo "失敗!";
else echo "成功!";
mysql_close();
 ?>
 


瀏覽網頁: http://s1.neil0918u.com/mysql2.php    #連線"成功"回傳,本Lab介紹到此為主


相簿設定
標籤設定
相簿狀態