[ DevOps ] Nginx 設定 Proxy Server 及 Load balance

前一篇 ubuntu 上 Nginx 安裝與設定 文章有說明如何安裝 Nginx 以及基本設定,本篇文章主要分享安裝好 Nginx 後,該如何調整參數,讓 Nginx 成為 proxy server。

Proxy server 介紹

一般稱為代理伺服器,當外部網路上的用戶端提出請求,Proxy server 會將外部的請求導到內部網路中所對應的伺服器做回應,該回應結果會再透過 Proxy server 傳回給外部網路上的用戶端,此方法是為了保護內部伺服器服務的安全,避免用戶端可以直接對伺服器做攻擊,另外 Proxy server 也有另外一個好處,可以做 Cache 機制,當伺服器的回應內容如果沒有做更新, Proxy server 可以將過去回應的結果直接傳回給用戶端。

設定 Proxy server & Load Balance 步驟

想要讓 internet 上的用戶端透過 www.example.com 這個 domain name 連線至 Nginx server 再透過 Proxy 機制導到內部本地端的伺服器,可以透過下面的設定檔

Step 1.

在 server 上設定 nginx 套件

cd /etc/nginx/conf.d  
vi nginx.conf  

Step 2.

新增 Domain name 連線至 Nginx server 再透過 Proxy 機制導到內部本地端的伺服器的設定檔。

server {  
  listen 80; 
  server_name www.example.com;
  location / {
    proxy_pass 127.0.0.1:3000;
    # 把 www.example.com 指到本地端 3000 port
  }
}

Step 3.

設定 Load balance 設定檔,需要使用 upstream 這個模組

upstream backend {  
  server 127.0.0.1:3000;
  server 127.0.0.1:3001;
}
server {  
  listen 80;
  server_name www.example.com;
location / {  
  proxy_pass http://backend; # 指到設定的 upstream
}
}

設定完成後 Nginx 會使用預設的 round-robin 演算法機制來作 Load balance。

Step 4.

重新讀取 Nginx 設定檔

/etc/init.d/nginx reload

系統環境版本資訊

  • Ubuntu 14.04
ALL RIGHTS RESERVED. COPYRIGHT © 2016. Designed and Coded by Makee.io