檢查 Nginx http_stub_status 模組:
首先檢查你的 Nginx 是否帶有 http_stub_status 模組,最簡單的方式檢查的方式如下:
nginx -V
上述指令會列出 Nginx 版本與所包含的模組,確認看看是否有 http_stub_status 模組。若沒有該模組卻又使用 stub_status,執行 Nginx 時會出現錯誤:
nginx: [emerg] unknown directive "stub_status"
安裝 Nginx http_stub_status 模組:
若你的安裝的 Nginx 並沒有此模組,我們可以透過重新編譯、安裝步驟來完成。重點是在編譯 Nginx 時需要加入參數 --with-http_stub_status_module。在 Mac OS X 環境上我們仍然可以透過 Homebrew 來重新編譯 Nginx。首先我們要修改 Homebrew 的 Formula ( 即 nginx.rb )。指令:
# 開啟 nginx.rb
brew edit nginx
然後在 args 區塊內加入該參數:
...
args = %W[
--prefix=#{prefix}
--with-http_ssl_module
--with-pcre
...
...
--with-http_gzip_static_module
--with-http_stub_status_module
]
...
修改 nginx.rb 完後,然後使用 Homebrew 重新編譯:
brew reinstall nginx --build-from-source
修改 Nginx 設定檔:
編譯好後,我們需要加入 Nginx stub_status 設定:
location /nginx_status {
# 開啟 stub_status 設定
stub_status on;
access_log off;
# 只允許特定 IP 瀏覽
allow 192.168.1.X;
# 拒絕其他訪問
deny all;
}
將 Nginx 重新載入後,我們只需要連上 http://your-ip/nginx_status 即可看到簡易的 Server 訊息。
Environment :
・ Mac OS X
・ Python 2.7
Reference :
・ Tornado
・ Nginx