美文网首页
如何配置ngnix兼容PC与APP的分享功能?

如何配置ngnix兼容PC与APP的分享功能?

作者: hu1991die | 来源:发表于2017-11-03 16:22 被阅读12次

    一、目前我们的需求:

    之前在老东家的时候,有这么一个需求,在APP端对课程进行分享(分享到QQ、微信、朋友圈、微博、QQ空间),如果当前是在手机端进入QQ空间,点击该分享链接跳转的是手机端APP课程详情界面(已登录的情况,未登录则跳转到等界面);如果当前是在PC端进入的QQ空间,点击该链接跳转的则是PC端课程详情界面(已登录的情况,未登录则跳转到登录界面)在PC端对课程进行分享(分享到微博、QQ空间),与上反之。

    二、解决方案:

    原先商讨是将PC端的分享链接地址与APP端的分享链接地址统一,再由Nginx去判断客户端类型,进行不同的服务分发,之前商讨的是分享链接地址前缀统一成学员前端web,这样的话安卓和IOS两边都需要改,而且还需要在前端写死,感觉这样的话不是很灵活,因为我们APP这边还需要走适配器,也会有不同的环境,每个环境对应的地址不一样,每次都改的话对前端来说效率不是很高,所以决定前端暂时不动,仍旧是请求接口地址,分发操作还是交由Nginx来统一处理。这样的话,每次发版新环境的时候,nginx里面就需要注意一下了,我们需要在nginx.conf配置文件中的server下面配置两个location:

    三、最终实现:

    这里暂时以老东家预发布环境为例:

    • 1、解析pc端分享链接地址
    location /web/share {
        alias /app/content/http/data/web/;
        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.)|(.Windows CE.)|(java.)|(Opera.))$” ){
            rewrite ^ http://xxxx.com/mobile/share/index.html;
        }
    }
    
    • 2、解析app端分享链接
    location /mobile/share {
        alias /app/mobile-tomcat/webapps/mobile/share;
        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.)|(.Windows CE.)|(java.)|(Opera.))$” ){
            rewrite ^ http://xxxx.com/web/share/;
        }
    }
    

    以上就是配置的一些信息,有兴趣的可以自己去研究一下。

    相关文章

      网友评论

          本文标题:如何配置ngnix兼容PC与APP的分享功能?

          本文链接:https://www.haomeiwen.com/subject/zsuapxtx.html