Nginx 介紹(原稿出自這裡)
Nginx 為一個網頁伺服器,它能反向代理 HTTP, HTTPS, SMTP, POP3, IMAP 的協議鏈接,以及設置 Load balance 和 HTTP cache。
目前越來越多人將 HTTP 伺服器轉為 Nginx,作為代理伺服器可以接收 internet 上的 Request,避免大量的 Request 直接打到後端的 Web service,並且能將不同的 Request 導向後端的 ip,達到分流以及負載平衡應用。
這裡就廢話少說,直接開始。
在 server 上安裝
1、更新 apt-get 套件內容
sudo apt-get update
2、安裝 Nginx 套件
apt-get install nginx
3、在 server 上設定 nginx 套件
cd /etc/nginx/nginx.conf
vi nginx.conf
4、到這一步就進到了編輯頁面,vi 是 linux 的指令,若不知道 vi 的朋友請參考這裡
在 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符合不同的規則
}
}
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
}
}
6、重新讀取 Nginx 設定檔
/etc/init.d/nginx reload
做到這基本就算是安裝完了,以上設定是直接連接到你的本地端專案,但在實務上,通常是先將專案上傳到第三方,然後再下拉到遠端 server 去做設定,我自己是用 github,用的語言是 Ruby on Rails,部署的設定參考的是 Ruby on Rails 實戰聖經 網站部署篇