Nginx HTTP User_agent
假設我這里有大量圖像、CSS、javascript等靜態文件,分別放在后端服務器 ?192.168.1.5 和 192.168.1.6上,那么我如何利用nginx的反向代理功能將不同的 http_user_agent 請求發送到指定的服務器上呢?如 "Mozilla" 轉發到 192.168.1.5 ,MSIE ?轉發到 192.168.1.6 。
Nginx web 服務器支持if條件表達式,由此來跳轉或者使用不同的配置變量。在本文中需要使用 $http_user_agent 變量,它標記了用戶瀏覽器的類別,版本以及操作系統的一些信息
?
[html]?view plaincopy
if指令會就檢查后面表達式的值是否為真(true),如果為真,則執行后面大括號中的內容。以下是一些條件表達式的比較方法:
1、變量的完整比較可以使用=或!=操作符
2、 部分匹配可以使用正則表達式來表示,~或~*
3、~表示區分大小寫
4、~*表示不區分大小寫(firefox與FireFox是一樣的)
5、!~與!~* 是取反操作,也就是不匹配的意思
6、檢查文件是否存在使用 -f 或 !-f 操作符
7、檢查目錄是否存在使用-d或!-d操作符
8、檢查文件,目錄或符號連接是否存在使用-e或!-e操作符
9、檢查文件是否可執行使用-x或!-x操作符
10、正則表達式的部分匹配可以使用括號,匹配的部分在后面可以用$1~$9變量代替,這些和apache一致。
例子:
編輯 /usr/local/nginx/conf/nginx.conf 文件
#vi /usr/local/nginx/conf/nginx.conf
設置upstream服務器:
?
?
[html]?view plaincopy
更新虛擬主機配置文件
?
?
[html]?view plaincopy
最后重啟/重新載入nginx
?
?
[html]?view plaincopy轉載于:https://www.cnblogs.com/jouny/p/4134710.html
總結
以上是生活随笔為你收集整理的Nginx HTTP User_agent的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JQ 为未来元素添加事件处理器—事件委托
- 下一篇: Nginx——事件驱动机制(雷霆追风问题