一概述
關於Nginx Web Server的篇章,發現挺長時間沒有更新了,只能利用空閒的時間細心整理一下,希望在提升自己能力的同時,也能幫助到大家,在之前的寫的一篇Nginx文檔中,介紹了Nginx核心模塊ngx_http_core_module常用指令的詳細說明,也加以實例的操作展示出來,在之後的文檔中繼續總結Nginx常用的模塊:
模塊:ngx_http_access_module
功能:允許,限制某些客戶端的訪問地址
指令:
allow 127.0.0.1;
允許指定IP地址的客戶端訪問,可以是單獨的IP,或者IP網段與Unix套接字;
deny all;
限制指定IP地址的客戶端訪問,可以是單獨的IP,或着IP網段與Uinx套接字;
示例:
Location / { allow 127.0.0.1; deny 0.0.0.0/24 }
輸出結果:
a)本地測試
b)客戶端測試
模塊:ngx_http_auth_basic_module
功能:允許限制通過驗證用戶名和密碼使用HTTP基本身份驗證協議訪問服務器資源。
指令:
auth_basic "Nginx Access Basic";
使用HTTP基本身份驗證協議,聲明用戶驗證時的提示信息;
auth_basic_user_file "path/client.passwd";
指定用戶身份驗證文件,如果不是網頁根目錄下,需要些絕對路徑;
示例:
location / { auth_basic "Nginx Access Basic"; auth_basic_user_file /data/bbs/program/client.passwd; }
輸出結果:
#提示:客戶端client.passwd驗證文件,需要用htpasswd命令生成,對於不熟悉的朋友可以查閱:http://hi.baidu.com/df_world/item/c6183a16b51e4afc756a848b
模塊ngx_http_autoindex_module
功能:自動索引目錄
指令:
autoindex off;
啓用或者禁用目錄列表的輸出,默認爲off(關閉);
autoindex_index_exac_size on;
顯示索引列表中,文件確切的大小,默認爲on(啓用),輸出單位是bytes;改爲off後,顯示出文件的大概大小,輸出單位是kB、MB、GB等;
autoindex_localtime on;
指定索引列表中,顯示文件的時間戳爲本地時間或者UTC時間;默認爲off(關閉),顯示的文件時間戳爲UTC時間。改爲on後,顯示的文件時間戳爲服務器的本地時間;
示例:
location / { autoindex on; autoindex_exact_size off; autoindex_localtime on; }
輸出結果:
#提示:使用autoindex功能的朋友,網站根目錄下不要有index.html,index.php索引文件,不然瀏覽器中顯示的便是索引文件中的信息;
ngx_http_charset_module
功能:添加指定的字符集的“Content-Type”響應標頭字段,此外,該模塊可以將數據從一個字符集轉換成另一個字符集,但它會有一些侷限性:
a)執行轉換的一種方法,從服務器到客戶端,且只有單字節字符集可以轉換;或者單字節轉換爲UTF-8;
指令:
Charset utf-8;
添加指定的字符集的“Content-Type”響應頭字段,若指定的字符集不同於source_charset指令指定的字符集,將執行轉換;
Charset mime-type;
處理與響應指定的mime類型,默認值爲text/html、text/xml、application/javascript等,其中除了“text/html”類型,特殊值“*”將匹配任何MIME類型,
Source_charset utf-8;
定義響應的源字符集,如果設置的源字符集不同於charset指令指定的字符集,將執行轉換;
示例:
Server { charset utf-8; source_charset utf-8; charset_types text/xmltext/plain text/vnd.wap.wml application/javascript application/rss+xml; }
輸出結果:
#提示:默認情況下charset_types字段可以省略,因爲在Nginx配置文件中includemime.types定義衆多類型的“Content-Type”響應頭字段,建議朋友去了解一下;
ngx_http_gzip_module
功能:此模塊是個過濾器,使用Gzip方法響應壓縮,通常有助於減少一半甚至更多的傳輸數據的大小;
指令:
gzip off;
啓用或關閉gzip響應,默認關閉(off)狀態,啓用狀態爲(on);
gzip_buffers 32 4k;
設置用於壓縮響應的緩存區數量與大小,默認情況下,緩存區大小等於一個內存頁,可設置爲4k或8k,這往往取決於一個平臺;
#Linux平臺可以通過如下方法查詢頁面大小:
[root@Nginx_web1~]# getconf PAGE_SIZE
4096
gzip_disable "MSIE [4-6]\.";
禁用gzipping響應“User-Agent”頭字段匹配任何指定正則表達式的請求。
gzip_min_length 20;
設置將要被gzip壓縮響應的最小長度,這長度只從“Content_Length”響應標頭字段來決定。
gzip_http_version 1.1;
設置壓縮響應請求需要的最小HTTP版本,支持HTTP1.0,HTTP1.1;
gzip_proxined off;
啓用或禁用gzipping對代理請求依賴於請求和響應,這響應代理事實上是有“Via”請求頭字段的存在來確定,一個指令接受多個參數;
gzip_types mime-type;
啓用gzipping響應指定的mime類型,除了“text/html”類型,其中特殊值“*”匹配任何mime類型,“text/html”類型的響應始終被壓縮;
gzip_vary off;
啓用或禁用插入“Vary:Accept-Encoding”響應頭字段;
示例:
http { gzip on; gzip_min_length 1k; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_comp_level 3; gzip_disable "MSIE [4-6]\."; gzip_types text/plain text/cssapplication/x-javascript text/xml application/xml text/javascript; gzip_vary on; }
輸出結果:
我想說,學習也是一件辛苦的事情。古人云:“閱萬卷書,行萬里路”;對於學習,請多花費一些時間,且能持之以恆,把別人的知識變成自己的知識,能熟練運用,精通之,便是你最終的目標;相信自己,你也可以;