生活随笔
收集整理的這篇文章主要介紹了
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?(?condition?){????do_something??}??if?(?$http_user_agent?=?"wget"?){?????do_something??}??if?(?$http_user_agent?~?MSIE?){?????return?403;??}??
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
upstream?myproxybackend??{?????????server?192.168.1.1;?????????server?192.168.1.2;?????????server?192.168.1.3;?????????server?192.168.1.4;??}?????upstream?msiebackend??{?????????server?192.168.1.6;??}?????upstream?mozillabackend??{?????????server?192.168.1.5;??}??
更新虛擬主機配置文件
?
?
[html]?view plaincopy
server?{????????access_log??logs/access.log;????????error_log???logs/error.log;????????index???????index.html;????????listen??????202.54.1.5:80?default;????????root????????/usr/local/nginx/html;????????server_name?example.com?www.example.com?0.example.com;??????????##?PROXY?-?Web????????location?/?{??????????proxy_pass??http://myproxybackend;??????????if?($http_user_agent?~?MSIE?)?{????????????????proxy_pass??http://msiebackend;??????????}??????????if?($http_user_agent?~?Mozilla?)?{????????????????proxy_pass??http://mozillabackend;??????????}?????????????proxy_next_upstream?error?timeout?invalid_header?http_500?http_502?http_503;??#?many?more...??#?many?more...??}??
最后重啟/重新載入nginx
?
?
[html]?view plaincopy
#/usr/local/nginx/sbin/nginx?-s?reload ?
轉載于:https://www.cnblogs.com/jouny/p/4134710.html
總結
以上是生活随笔為你收集整理的Nginx HTTP User_agent的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。