仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 439|回复: 8
打印 上一主题 下一主题

[CentOS(社区)] 带来一篇Nginx支撑手机拜访(WAP/XHTML)相干设置装备摆设

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 21:06:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
小知识:CentOS并不包含封闭源代码软件。
1、断定手机用户
普通经由过程User-Agent来断定,从网上抄一抄,那些列出的都不错,我的设置装备摆设里加上了Java、curl和Wget,便利调试和其它外部项目标抓取。
由于如今许多手机网关没有发送User-Agent,所以年夜部门手机发送的User-Agent到了网关就被过滤失落了,相当因而空值。经由抽样查询拜访,User-Agent为空且为手机用户比例比拟年夜。有部门User-Agent为空的是一些蜘蛛或渣滓法式的访问,这些渣滓流量其实不那末主要。愿望手机网关未来有响应的尺度,不要发送空的User-Agent,就是发送一个字母也好啊。
假如运用有一个自力域名,也未需要做手机断定。比方新浪有自力域名且不得人心,那它做不做跳转可有可无。
nginx设置装备摆设用穷举方法枚举各类手机User-Agent并把空User-Agent也转得手机运用里,非这些情形,则跳到赞助页面。
  1. set$ismob0;if($http_user_agent~"^((.*MIDP.*)|(.*WAP.*)|(.*UP.Browser.*)|(.*Smartphone.*)|(.*Obigo.*)|(.*Mobile.*)|(.*AU.Browser.*)|(.*wxd.Mms.*)|(.*WxdB.Browser.*)|(.*CLDC.*)|(.*UP.Link.*)|(.*KM.Browser.*)|(.*UCWEB.*)|(.*SEMC-Browser.*)|(.*Mini.*)|(.*Symbian.*)|(.*Palm.*)|(.*Nokia.*)|(.*Panasonic.*)|(.*MOT-.*)|(.*SonyEriCSSon.*)|(.*NEC-.*)|(.*Alcatel.*)|(.*Ericsson.*)|(.*BENQ.*)|(.*BenQ.*)|(.*Amoisonic.*)|(.*Amoi-.*)|(.*Capitel.*)|(.*PHILIPS.*)|(.*SAMSUNG.*)|(.*Lenovo.*)|(.*Mitsu.*)|(.*Motorola.*)|(.*SHARP.*)|(.*WAPPER.*)|(.*LG-.*)|(.*LG/.*)|(.*EG900.*)|(.*CECT.*)|(.*Compal.*)|(.*kejian.*)|(.*Bird.*)|(.*BIRD.*)|(.*G900/V1.0.*)|(.*Arima.*)|(.*CTL.*)|(.*TDG.*)|(.*Daxian.*)|(.*DAXIAN.*)|(.*DBTEL.*)|(.*Eastcom.*)|(.*EASTCOM.*)|(.*PANTECH.*)|(.*Dopod.*)|(.*Haier.*)|(.*HAIER.*)|(.*KONKA.*)|(.*KEJIAN.*)|(.*LENOVO.*)|(.*Soutec.*)|(.*SOUTEC.*)|(.*SAGEM.*)|(.*SEC-.*)|(.*SED-.*)|(.*EMOL-.*)|(.*INNO55.*)|(.*ZTE.*)|(.*iPhone.*)|(.*Android.*)|(.*WindowsCE.*)|(Wget.*)|(Java.*)|(curl.*)|(Opera.*))$"){set$ismob1;proxy_passhttp://www.92csz.com;}if($http_user_agent~^$){set$ismob1;proxy_passhttp://www.92csz.com;}if($ismob=0){rewrite"^.*$"http://help.www.92csz.com/permanent;}
复制代码

2、Content-Type
手机阅读器和通俗电脑拜访页面有所分歧,绝年夜多半手机不支撑text/html这类Content-Type格局。在web办事方面,除要做出适合手机阅读的页面,别的一个主要的工作就是要把Content-Type弄对了。普通手机应用的是text/vnd.wap.wml和application/xhtml+xml,据说text/vnd.wap.wml是老式手机公用,application/xhtml+xml是3g尺度指定的Content-Type,别的charset须要指明为UTF-8。
所以Content-Type就应像以下:
  1. Content-Type:application/xhtml+xml;charset=UTF-8
复制代码

如许就对了。
关于静态页面,Content-Type可以在法式里设定。
比方php
  1. header("Content-Type:application/xhtml+xml;charset=UTF-8")
复制代码

jsp的话,把顶头的page改了就好
静态法式里的设定,到了nginx上默许会继续,所以不消太多斟酌。nginx要做的一个是静态页面,另外一个是302跳转。
静态页面的Content-Type改起来不费事,修正mime.types:
  1. application/xhtml+xmlhtmlhtmshtml;application/xhtml+xmlxml;
复制代码

把须要的扩大名对应的类型改一改就行了。然后在nginx.conf里指定charsetUTF-8。
费事的是301和302跳转,nginx中应用rewrite的redirect和permanent跳转的时刻,Content-Type怎样改都邑是text/html,应用add_header,Content-Type酿成了两行,没能杀青目标。用署理到静态法式虽然行,但机能和稳固性又成了成绩。最初查阅了nginx源码,发明这个text/html是写逝世的……
唉,第一次修正c代码:
我调试的这个nginx是0.7.30版的,文件:
  1. vi./src/http/ngx_http_special_response.c568//r->headers_out.content_type_len=sizeof("text/html")-1;569//r->headers_out.content_type.len=sizeof("text/html")-1;570//r->headers_out.content_type.data=(u_char*)"text/html";
复制代码

把568569570这三行代码正文失落,就能够让nginx跳转时不发送Content-Type,我发明在电脑的IE/FF阅读器上没有Content-Type也能正常跳转。
固然,为了严谨一些,写上Content-Type吧,如今可以用add_header界说:
  1. add_headerContent-Type"text/html";
复制代码

手机的就是:
  1. add_headerContent-Type"application/xhtml+xml";
复制代码

小知识:RHEL是很多大型企业采用的操作系统,但需要向RedHat购买使用权,有偿享受技术支持、版本升级等,所以推荐大家使用CentOS。
分手快乐 该用户已被删除
沙发
发表于 2015-1-17 05:22:31 | 只看该作者
安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。如果Linux说明文档不看,结果出了问题再去论坛来找答案反而浪费时间。
山那边是海 该用户已被删除
板凳
发表于 2015-1-25 23:41:46 | 只看该作者
主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
蒙在股里 该用户已被删除
地板
发表于 2015-2-4 16:28:45 | 只看该作者
为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。
小女巫 该用户已被删除
5#
发表于 2015-2-10 04:15:05 | 只看该作者
其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。
若相依 该用户已被删除
6#
发表于 2015-2-28 21:10:19 | 只看该作者
Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。
冷月葬花魂 该用户已被删除
7#
发表于 2015-3-10 08:52:53 | 只看该作者
熟悉并掌握安装Linux,安装是学习的前提。目前较常见的安装方法有二种:
变相怪杰 该用户已被删除
8#
发表于 2015-3-17 07:09:38 | 只看该作者
对我们学习操作系统有很大的帮助,加深我们对OS的理解。?
若天明 该用户已被删除
9#
发表于 2015-3-24 03:27:53 | 只看该作者
以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-27 20:58

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表