[ DevOps ] ubuntu 上 Nginx 安裝與設定

在架設 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
ALL RIGHTS RESERVED. COPYRIGHT © 2016. Designed and Coded by Makee.io