看板 ott
作者 ott (寶貝)
標題 Nginx 建置小記
時間 2014年02月04日 Tue. PM 09:32:40


   
 


http://tinux.no-ip.com/wordpress/?p=102

在流量龐大的網站中,Apache 常常是個讓主機負載暴衝的大怪物。 有鑑於此,最近現在流行了一些羽量級的http server 軟體。其中最負盛名的就是lighttpd,但其中最被看好的是後起之秀nginx。
nginx 不論速度、相容性、設定簡易性都優於lighttpd,我在兩者評估了半天,我還是不得不選擇nginx,實在是因為lighttpd找不到比nginx 好的地方,我只好割愛了。


nginx 的下載網站從 www.nginx.org 就能看到,它是個俄文網站,但你可以點以下右上角的 English,就可以看到親切的英文介面了。
下載最新的nginx 版本下來,解開壓縮檔,開始編譯安裝:

./configure --with-http_stub_status_module --prefix=/home/www/nginx

make

sudo make install

其中編譯參數 –with-http_stub_status_module 是它的監測畫面模組。
安裝完成之後,他的設定檔就在 conf/nginx.conf 這個檔。
他的設定檔看起來有點巢狀程式化,但比Apache 的設定檔迷你多了。
nginx.conf 內容很簡單,但要記得他的設定有先後順序的問題。尤其是拿來來執行cgi、php ,又加上一些虛擬目錄的設定時,容易因為設定順序問題而出了錯。

以下是我的一個簡單的設定例子:

location / {
          allow 127.0.0.1;
          allow 192.168.0.1;
          deny all;
          root   html;
          index  index.html index.htm;
        }


location /NginxStatus {
         stub_status             on;
         access_log              on;
         auth_basic              "NginxStatus";
         auth_basic_user_file /home/www/nginx/conf/htpasswd.users;
}


這樣我的網頁只有192.168.0.X 能夠看得到。

但是,由於我的 NginxStatus 這個目錄開了http驗證,所以它能夠自動跳脫上一段首頁 allow/deny 的限制。
凡是任何網段的主機,只要驗證輸入正確的帳號、密碼,就可以看到NginxStatus 目錄的內容。
但要注意的是,http 驗證的這個目錄一定要寫在首頁描述的區段之後,如果順序不對,http 驗證後會變成找不到網頁。這是個nginx 常見的問題。

另外,nginx 的驗證密碼檔很多地方都提要用Apache 的htpsswd 指令來建,但如果不想再裝Apache(既有nginx,何需apache?),可以試用小弟寫的perl :

#!/usr/bin/perl
use strict;

my $us=$ARGV[0];
my $pw=$ARGV[1];
print $us.":";
print crypt($pw,$pw)."\n";


存成 ngpasswd,然後chmod +x ngpasswd 給他執行權限。

假如我要建立帳號 joe,密碼 jj123 ,我就輸入:

ngpasswd joe jj123

就會產生:

joe:jjRJmShiZQAOs

把這串字覆製,貼到/home/www/nginx/conf/htpasswd.users 檔案中,就能使用驗證功能。

Nginx 還有很多方便的運用,例如flv Stream 、負載平衡、反向proxy,如果有需要,參考nginx 的wiki 來安裝使用 cgi 或 php 比想像中輕鬆。
没有標籤










 


 

--
※ 作者: ott 時間: 2014-02-04 21:32:40
※ 編輯: ott 時間: 2014-02-04 21:33:45
※ 看板: ott 文章推薦值: 0 目前人氣: 0 累積人氣: 1306 
分享網址: 複製 已複製
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇