Site icon Mr. 沙先生

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

自從學習 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

$ rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ yum install mysql mysql-server php php-mysql php-fpm nginx

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

user  nginx;
worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;
worker_rlimit_nofile 1024;
events {
   use epoll;
   worker_connections 1024;
}

 

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

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

server {
  listen 80;
  server_name shazi.twbbs.org;
  root /usr/share/nginx/wordpress;
  index index.html index.php index.htm;
  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;
  server_tokens off;

  location / { 
        root /home/wordpress/; 
        index index.php index.html index.htm; 
        try_files $uri $uri/ /index.php?$args; 
  }

  rewrite /wp-admin$ $scheme://$host$uri/ permanent;

  location ~* \.php$ {
        try_files $uri = 404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
  }
}

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

 

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

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

[www]
listen = /var/run/php-fpm/php-fpm.sock
user = nginx
group = nginx
request_terminate_timeout = 600s

 

step5. 將 wordpress 程式放入 root 路徑

$ mv wordpress /usr/share/nginx/
$ chown -R nginx.nginx /usr/share/nginx/wordpress

 

step6. 啟動服務

$ service nginx start
$ service php-fpm start

看到 WordPress 畫面就 OK 囉!!

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

 

Exit mobile version