在架設 Web service 時,想要加速網頁讀取速度或是減輕後端伺服器的負荷,通常會使用 Nginx 協助靜態網頁做快取機制,並提升伺服器的的負載能力,本篇主要介紹如何安裝 Nginx 以及基本設定。
Nginx 介紹
Nginx 為一個網頁伺服器,它能反向代理 HTTP, HTTPS, SMTP, POP3, IMAP 的協議鏈接,以及設置 Load balance 和 HTTP cache。
起初是供俄國大型的入口網站及搜尋引擎 Rambler 使用。此軟體 BSD-like 協定下發行,可以在 UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及 Microsoft Windows 等作業系統中執行 (from wiki)。
實務上應用,目前越來越多人將 HTTP 伺服器轉為 Nginx,作為代理伺服器可以接收 internet 上的 Request,避免大量的 Request 直接打到後端的 Web service,並且能將不同的 Request 導向後端的 ip,達到分流以及負載平衡應用。
安裝步驟
Step 1.
更新 apt-get 套件內容
sudo apt-get update
Step 2.
安裝 Nginx 套件
apt-get install nginx
Step 3.
在 server 上設定 nginx 套件
cd /etc/nginx/conf.d
vi nginx.conf
Step 4.
在 Nginx 設定檔中,有兩種內容,包含:指令、模組。在指令的部分需要填入對應的參數及空格,最後則用分號 ( ; ) 做結尾,而模組的部分則是以大括號 {} 做區分,在 {} 內部我們可以新增所需的指令與模組,例如:製作 Reserve proxy 或是靜態 Cache 檔案,進而擴充其功能。 Nginx 程式註解的部分,可以使用 # 符號。
基本的 Nginx 設定檔結構如下,包含:http、server、location 三個模組
http {
# 可以設置 gzip、gzip_buffers、timeout 時間等
server {
# 通常會加入這個虛擬主機的 Port 和網域名稱
access_log /var/log/nginx/nginx.access.log;
# 可以將這個網頁服務器產生的 log 新增放置位置
location {}
# location 指令會因為不同的URL符合不同的規則
}
}
Step 5.
基本設定檔範例,如本地端 (localhost) 已有架設好的 Web service (例如:Node.js),想要讓 internet 上的使用者透過 www.example.com 這個 domain name 連線至本地端的服務 127.0.0.1:3000,可以透過下面的設定檔
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass 127.0.0.1:3000;
# 把 www.example.com 指到本地端 3000 port
}
}
Step 6.
重新讀取 Nginx 設定檔
/etc/init.d/nginx reload
系統環境版本資訊
- Ubuntu 14.04