安裝 Nginx:
Nginx 安裝的方式有很多種,因為本範例是在 Mac OS X 上運行,所以我使用 Homebrew 來安裝,指令如下:
brew install nginx
設定 Nginx:
安裝好 Nginx 後,接著來修改設定檔,安裝時會有一個預設的設定檔於 /usr/local/etc/nginx/ 底下,打開 nginx.conf 來修改,內容參考如下:
# 設定啟動 Process 數量
worker_processes 4;
# 設定 Log 檔案名稱及存放位置, 後面可加上 Log level 參數,
# e.g. info, notice, error
error_log /your/path/nginx.log;
# 設定 pid 檔案名稱與存放位置
pid /your/path/nginx.pid;
events {
# 連接數量
worker_connections 1024;
# 定義處理方式, e.g. select, poll, kqueue, epoll
# 根據作業系統不同選擇適合的模式, Mac OS X 使用 kqueue
use kqueue;
}
http {
# 指定 Tornado Server
upstream myapp {
server 127.0.0.1:8000;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
# 設定 gzip 相關參數, 請參考 gzip_module
gzip on;
gzip_min_length 20;
gzip_proxied any;
gzip_types text/plain text/css text/xml
application/x-javascript application/xml
application/atom+xml text/javascript;
server {
# 設定監聽 port 80
listen 80;
# 設定 Server 名稱, e.g. www.yourweb.com
server_name localhost;
# 設定靜態資源請求相關參數, 將你的靜態資料路徑加入,
# 若出現 403 時請檢查檔案權限是否正確
# 若出現 404 時請檢查 Log 查看 Request 的路徑是否正確
location /static/ {
root /your/path/to/app;
if ($query_string) {
expires max;
}
}
# 設定一般請求相關參數
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://myapp;
}
}
}
按照上面的範例,我們已經完成設定的步驟。
使用 Nginx:
以下列出常用的 Nginx 的指令:
# 啟動 Nginx 並加入 -c 參數指定設定檔位置
nginx -c /your/path/nginx.conf
# 更新
nginx -s reload
# 停止
nginx -s stop
Environment :
・ Mac OS X
・ Python 2.7
Reference :
・ Tornado
・ Nginx