如何运用Nginx软件搭建出一个用手机和用电脑访问都显示一样页面的网页?

如何运用Nginx软件搭建出一个用手机和用电脑访问都显示一样页面的网页?


要解决这个问题的核心是:

1.如何识别客户是用手机访问还是用电脑访问的?

2.识别出来后如何实现?


1.如何识别客户是用手机访问还是用电脑访问的?


解答:在Nginx的配置文件中有几行被注释的默认值,主要就是用于记录客户的访问日志;

vim   /usr /local /nginx /conf /nginx.conf

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '

    #                  '$status $body_bytes_sent "$http_referer" '

    #                  '"$http_user_agent" "$http_x_forwarded_for"';

译为:上述这段话的大意是说,如果有人访问我的网站,我就会记录日志,日志记录到这个目录里面: #access_log  logs/access.log  main;

这个日志都记录一些什么信息呢?

主要记录以下这些变量值:

$remote_addr -            ##远程地址,也就是客户机的IP地址;

$remote_user              ##远程机用的是那一个用户名;

[$time_local]                ##什么时间进行的访问;

$request                       ##客户端的请求是什么,想要访问服务器的什么?

'$status                         ##客户端查看服务端页面的结果是什么?成功还是失败,200表示成功,404表示失败;

$body_bytes_sent     ##客户端访问的网页内存有多大?

$http_referer               ##客户端从哪里来,那个网站过来的?

        比如:www.163.com     直接访问就是空;

                    www.baidu.com   ------->      www.163.com     从百度到163;

'"$http_user_agent       ##客户端用户的信息,用的是什么系统,什么浏览器;

$http_x_forwarded_for        ##从哪里转发过来的?


知识点拓展:

Trident/7.0    微软新版本浏览器,这是IE浏览器的内核版本;

Chrome/59    谷歌的浏览器;

例如这条日志信息:

192.168.4.10 - - [04/Apr/2019:21:01:16 +0800] "GET /favicon.ico HTTP/1.1" 404 169 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"

译为:ip为 192.168.4.10 的客户机,用户名为空,在2019:21:01:16 +0800这个时间,访问过服务器的HTTP/1.1,结果网页报错404,网页流量为169,从这个Mozilla/5.0地方来,客户机的系统是Linux x86_64,通过火狐浏览器访问的Firefox/52.0;



由此,我们可以得出,在Nginx的配置文件只需要加上这样一句话即可判断出客户端用的是手机还是电脑;

if    ( $http_user_agent ~ * firefox )        ##如果客户端用的是浏览器;

if    ($http_user_agent  ~*  windows)   ##如果客户用的是windows系统;

if    ($http_user_agent  ~* android)       ##如果客户用的是android系统;

if    ($http_user_agent  ~* ios   )            ##如果客户用的是苹果系统;

如果上述信息匹配则,执行下述命令:

rewrite ^( .* )      /luo/$1;     ##


2.识别出来后如何实现?


现实场景:

这是一个非常常见的现实场景,现在每个人几乎都有一部手机和电脑,客户有的时候用手机上网,有的时候用电脑上网;

但是手机的大小和电脑的大小,系统,性能都有些差别;

这个时候,我们的开发人员通常会准备两份文件,然后交给运维人员处理;

这个时候,担任运维重担的你如何实现,当客户用手机访问时,系统会识别出来并把手机版的网页文件给客户;

当客户用电脑访问的时候也能够识别出来,并把电脑版的网页文件给客户;

从而给客户良好的使用体验;

解决方案:


第一步、部署Nginx,检查Nginx能否正常运行;

第二步、进如Nginx的配置文件添加参数;

vim    /usr /local /nginx /conf /nginx.conf

server    {

        listen    80;

        server_name    www.baidu.com;

location   /   {

         root    hrml;

      index.html    index.htm;

if    ( $http_user_agent  ~ * firefox )  {      ##识别客户端的firefox的浏览器,同时也可以设定识别系统等其它;

rewrite    ^( .* )    /luo/$1;        ##

}

location    ~  /.php$    {

        root    html;

if    ( $http_user_agent  ~ * firefox )  {      ##识别客户端的firefox的浏览器,同时也可以设定识别系统等其它;

rewrite    ^( .* )    /luo/$1;

        fastcgi_paas    127.0.0.1:900;

        fastcgi_index    index.php;

        include    fastcgi.conf;

}

}

注释:

if    ( $http_user_agent  ~ * firefox )  {      ##识别客户端的firefox的浏览器,同时也可以设定识别系统等其它;


~ *       ~ 正则匹配,    * 不管是大写还是小写字母;

rewrite   重写的意思;

^/ ( .* )    正则表达式:意为匹配以根号为开头,以任意字符数,出现任意次数的域名;

$1    复制(.*)括号中的内容

翻译成人话就是:

如果客户用份firefox火狐浏览器访问网页,且不管域名是大写字母还是小写字母,当你访问老域名下的任何网页文件,都跳转到新域名下 /luo / $1对应的网页文件;


以上.......

                                                            ( END)


祝:开心!

罗贵

2019-04-04于深圳

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352

推荐阅读更多精彩内容