仓酷云
标题:
给大家带来nginx手机用户会见跳转手机版与PC版页面
[打印本页]
作者:
萌萌妈妈
时间:
2015-1-14 20:25
标题:
给大家带来nginx手机用户会见跳转手机版与PC版页面
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!事情中为满意营业必要和包管办事的可用性,设置的一些nginx跳转划定规矩,与公司营业相干信息已抹往,供应出来但愿对人人有匡助。
1.当后端办事器呈现非常,呼应码为500501502503504,哀求转发到静态升级办事器,从而包管营业不至于完整没法会见,关于扫瞄型且及时性请求不高的站点十分有效。
app_servers:使用办事器,供应一般办事页面
shopwebstatic:静态办事器,供应准时爬取的静态页面
2.哀求重试:
proxy_next_upstreamhttp_500http_502http_504errortimeoutinvalid_header;
3.依据useragent,cookie特定字段,未来源为PC版用户的哀求转发得手机版页面大概规复会见PC版本页面。
默许手机用户会见站点会跳转得手机版本,跳转判别根据是useragent,当用户点击会见电脑版本的时分,除要判别用户的useragent外还必要判别用户的会见形式,经由过程cookie中特定字段的值来判别用户会见哀求是得手机版本仍是到PC版本。
mode=pc,mode标志用户的会见形式是PC版本,经由过程此cookie字段,可判别是不是将useragent婚配智妙手机字段的用户的哀求转发得手机版本。
limit_conn_zone$server_namezone=limit:10m;
upstreamapp_servers{
serverapp_server01_ip:80weight=1max_fails=2;
serverapp_server01_ip:80weight=1max_fails=2backup;
}
upstreamshopwebstatic{
servershopwebstatic_server01_ip:80weight=5;
servershopwebstatic_server02_ip:80weight=5;
}
server{
listen80;
server_namequnying.liu.dianping.com;
#config_apps_begin
root/data/webapps/shops-web/shared/webroot;
access_loglogs/shops-web.access.logmain;
error_loglogs/shops-web.error.lognotice;
#config_apps_end
limit_connlimit280;
proxy_next_upstreamhttp_500http_502http_504errortimeoutinvalid_header;
location/{
proxy_intercept_errorson;
location~*^/shop/(d+)/menu{
set$mobile0;
set$shopid$1;
set$hostid0;
if($http_user_agent~*"(Android|iPhone|WindowsPhone)"){
set$mobile"${mobile}1";
}
if($host~*"m.dianping.com"){
set$hostid"${hostid}1";
}
if($http_cookie!~*"mode=pc"){
set$mobile"${mobile}1";
}
if($hostid="01"){
proxy_passhttp://app_servers/shop/$shopid/mobilemenu;
break;
}
if($mobile="011"){
rewrite^/(.*)$http://mobile-servers/$1redirect;
break;
}
proxy_passhttp://app_servers;
break;
}
location~*^/shop/(d+)/dish-(.*){
set$mobile0;
set$shopid$1;
set$dishurl$2;
if($http_user_agent~*"(Android|iPhone|WindowsPhone)"){
set$mobile"${mobile}1";
}
if($http_cookie!~*"mode=pc"){
set$mobile"${mobile}1";
}
if($mobile="011"){
rewrite^/(.*)$http://mobile-servers/shop/$shopid/product-$dishurlredirect;
break;
}
proxy_passhttp://app_servers;
break;
}
location~*^/map/shop/(d+)${
set$shopid$1;
rewrite^/(.*)$http://www.servers/shop/$shopid/mappermanent;
proxy_set_headerHost"www.servers";
break;
}
location~*^/shop/(d+)(/map|/)?${
set$mobile0;
if($http_user_agent~*"(Android|iPhone|WindowsPhone)"){
set$mobile"${mobile}1";
}
if($http_cookie!~*"mode=pc"){
set$mobile"${mobile}1";
}
if($mobile="011"){
rewrite^/(.*)$http://mobile-servers/$1redirect;
break;
}
proxy_passhttp://app_servers;
break;
}
#appserve***vcion
location~*^.*/favicon.ico${
root/data/webapps;
expires30d;
break;
}
if(!-f$request_filename){
proxy_passhttp://app_servers;
break;
}
}
error_page500501502503504@shopstatic;
location@shopstatic{
access_loglogs/shops-static-web.access.logretry;
proxy_passhttp://shopwebstatic;
}
2014.05.25更新:
发明已往设置的划定规矩中,因为未判别会见的主机名招致当一个使用同时被设置在pc和手机域名下,当会见pc版本域名跳转手机版本时会发生逝世轮回重定向,如www(手机会见时)----主动跳转到m域名---m域名剖析到使用会再依据useragent和cookie划定规矩跳转一次m域名,然后堕入逝世轮回。
在做域名跳转的时分,最好对域名做一个判别。
location~*/mylist/{
set$mobile0;
if($http_user_agent~*"(Android|iPhone|WindowsPhone|UC|Kindle)"){
set$mobile"${mobile}1";
}
if($http_host!~"m.dianping.com"){
set$mobile"${mobile}2";
}
if($cookie_vmod!~"pc"){
set$mobile"${mobile}3";
}
if($mobile="0123"){
rewrite^/(.*)$http://m.dianping.com/$1last;
break;
}
proxy_passhttp://jboss8080;
break;
}
本文出自“从菜鸟到老鸟”博客,请务必保存此出处http://liuqunying.blog.51cto.com/3984207/1406952
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
作者:
冷月葬花魂
时间:
2015-1-16 17:57
标题:
给大家带来nginx手机用户会见跳转手机版与PC版页面
然我们对Linux的学习首先是通过对它的产生,发展,到今天仍然在不断完善开始的。
作者:
透明
时间:
2015-1-21 15:15
目前全球有超过一百多个Linux发行版本,在国内也能找到十几个常见版本。如何选择请根据你的需求和能力,RedhatLinux和DebianLinux是网络管理员的理想选择。
作者:
再现理想
时间:
2015-1-30 20:24
主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
作者:
谁可相欹
时间:
2015-2-6 15:55
安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。如果Linux说明文档不看,结果出了问题再去论坛来找答案反而浪费时间。
作者:
仓酷云
时间:
2015-2-17 03:50
清楚了解网络的基础知识,特别是在Linux下应用知识,如接入internet等等。
作者:
灵魂腐蚀
时间:
2015-3-5 15:44
我想即使Linux高手也很难快速准确精练的回答你。
作者:
柔情似水
时间:
2015-3-12 10:51
熟读写基础知识,学得会不如学得牢。
作者:
活着的死人
时间:
2015-3-19 22:39
以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2