用 Nginx 取代 Apache 吧 – WordPress 實務操作 Round1

2015-03-30 CentOS

自從學習 Linux 以來都是使用 Apache 來當 Web Server,Apache 確實非常的方便,也很容易上手運用廣泛

由於新工作採用 Nginx 來部屬大訪問量,以及常常在書籍中看到 Nginx 這款輕量級 Web 的種種好處,花了一些時間研究了 Nginx

在 Linux,Nginx採用異步處理 I/O 的 epoll / Kqueue 在處理大量訪問的時候,Nginx 耗費的資源少而且處理速度快!

而 Apache 適合在處理系統,使用的是 select 機制,屬於比較舊型的處理方式,基於底層目前 Apache 還未針對這個方向做改進

Nginx 還有一個好處就是,大家通常都會拿它來當 Reverse Proxy Server ,簡直就是碰到就蹦得出來的快

目前 Apache 可以佔有的優勢就是用的人多,文件多; 其他 Nginx 還是大勝許多。

在這裡拿 wordpress 當範例,因為他是標準 LNMP 的架構,也適合在多數環境中使用

此篇主要會是將原有的 LAMP 的架構改為 LNMP 為主

詳細的 WordPress 設定可以參考另一篇 WordPress 部落格 架設

 

 

安裝 LNMP 架構環境

step1. 安裝套件

要安裝 Nginx 必須要擁有 EPEL

step2. 設定 /etc/nginx/nginx.conf

  • user : Nginx 執行的使用者權限
  • worker_processes : 可執行的程序數量,就是 CPU core
  • worker_cpu_affinity : processes 的 core 執行邏輯,4 核心可設定 1000 0100 0010 0001
  • worker_rlimit_nofile : 每個程序可開啟的最多檔案數量
  • use epoll : 這就是 Nginx 最強的東西,開了飛快!
  • worker_connections : 每個程序最多連線數

 

step3. 設定 /etc/nginx/conf.d/default.conf

其實 Nginx 設定非常的簡單,但跟 Apache 不同的概念是若要執行程式還是要透過 fastcgi,在這邊就是要跟 php-fpm 來進行 cgi 串接

  • server_name : VirtualHost 名稱
  • root : Web 位置
  • server_tokens : 移除版本資訊
  • location ~* \.php$ : 代表所有 .php 都交由 php-fpm 處理

在這邊必須先提醒各位,php-fpm 可以 Listen TCP Socket 或者是 UNIX Kernel Socket,效能上多數都是採用 UNIX Kernel Socket

 

step4. 設定 php-fpm,/etc/php-fpm.d/www.conf

處理好 nginx 的 fastcgi 連線,就要設定 php-fpm 的串接設定

  • listen : 預設是 127.0.0.1:9000 , 但採用 UNIX Kernel Socket 比較快
  • request_terminate_timeout : 有關於 php 可以執行最久的時間,超過就 timeout

 

step5. 將 wordpress 程式放入 root 路徑

 

step6. 啟動服務

看到 WordPress 畫面就 OK 囉!!

雖然 Nginx 非常簡單,但更代表必須花更多心思進行調校。

 

2 comments

  1. G先生 說:

    站長您好

    請問下假如 wordpress 更新顯示需要FTP,該從哪邊做設定呢?

    • shazi7804 說:

      Dear Mr. G

      想必您應該是使用 手動上傳更新吧!?
      如果是使用手動上傳更新,必須安裝 FTP Server!建議可以使用線上更新的方式進行更新。
      WordPress 會自動 wget 安裝包後解壓到 pluging 資料夾。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

彙整

分類

open all | close all

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱