brower 模塊主要作用是根據http請求頭中"User-Agent"的值,以瀏覽器的特征字符來判斷新舊瀏覽器,并生成對應的變量,以供后續的請求處理邏輯來使用。
1. 簡介
ngx_http_browser_module 模塊,通過判斷"User-Agent"請求頭的值,來生成變量,以供后續的請求邏輯處理。
2.內置變量列表
$modern_browser
如果瀏覽器被標識為現代瀏覽器,則等于 modern_browser_value 指令設置的值;
$ancient_browser
如果瀏覽器被識別為古老瀏覽器,則等于 Ancient_browser_value 指令設置的值;
$msie
如果瀏覽器被識別為MSIE,不區分任何版本,則等于1;
3.配置示例
現代瀏覽器的識別邏輯配置:
modern_browser_value "modern.";
# modern_brower指定何種瀏覽器以及對應的版本被視為現代瀏覽器, 配置格式后續介紹
modern_browser msie 5.5;
modern_browser gecko 1.0.0;
modern_browser opera 9.0;
modern_browser safari 413;
modern_browser konqueror 3.0;
當瀏覽器被判斷為現代瀏覽器時,modern_browser變量等于"modern.",即modern_browser_value配置的變量。
index index.${modern_browser}html index.html;
古老瀏覽器的兼容判斷:
modern_browser msie 5.0;
modern_browser gecko 0.9.1;
modern_browser opera 8.0;
modern_browser safari 413;
modern_browser konqueror 3.0;
modern_browser unlisted;
# ancient_browser配置何種子串被識別為古老瀏覽器
ancient_browser Links Lynx netscape4;
# 當瀏覽器被識別為古老瀏覽器,ancient_browser為1; 在此處可以做兼容處理或者給用戶直接以提示,提示更新或者更換現代瀏覽器;
if ($ancient_browser) {
rewrite ^ /ancient.html;
}
4.配置格式
Syntax: ancient_browser string ...;
Default: —
Context: http, server, location
配置"User-Agent"頭有何種子串時,被判斷為古老瀏覽器,特殊子串"netscape4"等價于正則表達式: ^Mozilla/[1-4]
Syntax: ancient_browser_value string;
Default:
ancient_browser_value 1;
Context: http, server, location
當識別為古老瀏覽器時,$ancient_browser變量的值,即默認為1;
Syntax: modern_browser browser version;
modern_browser unlisted;
Default: —
Context: http, server, location
配置何種瀏覽器何種版本時,判定為現代瀏覽器。browser取值:msie, gecko, opera, safari, konqueror. 版本定義格式為X, X.X, X.X.X, 或者X.X.X.X. ,每個格式的最大值分別為: 4000, 4000.99, 4000.99.99, and 4000.99.99.99。
unlisted為特殊字符串,配置當瀏覽器都未出現在來modern_browser和ancient_browser匹配范圍里,則被視為現代瀏覽器。否則被視為古老瀏覽器。如果請求頭中未提供"User-Agent"頭,則被視為未出現匹配列表中。
Syntax: modern_browser_value string;
Default:
modern_browser_value 1;
Context: http, server, location
當識別為現代瀏覽器時,$modern_browser變量的值,默認為1;
4.總結
ngx_http_browser_module 提供了瀏覽器兼容的判斷機制,使我們在做新舊瀏覽器兼容處理時更為優雅與高效,同學們可以在實際需求中多加運用,將業務邏輯中的瀏覽器版本抽離出來,使得業務更像業務,無需考慮其他。
到此這篇關于Nginx之Http模塊系列之autoindex模塊的具體使用的文章就介紹到這了,更多相關Nginx autoindex模塊內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!