乐趣区

关于nginx:Nginx适配pc端和移动端

👄 需要

在开发中,咱们经常会遇到这样的需要:依据用户设施的不同,返回对应款式的页面。说白了,就是我在 pc 端看到的页面款式和布局,要跟挪动端的不一样。

通常,咱们应用自适应的前端框架(比方 bootstrap),就能够达到这样的需要。这种办法不能说不行,然而(要害是这句😓), 如果把 pc 端和挪动端都写到一块儿,就会进步代码的复杂度,升高代码的灵活性。

这样的例子太多了,我已经在做网站的时候,老板👨要求在 pc 端和挪动端不光显示的款式、布局不同,连显示的内容模块都要不同。pc 端显示甲模块、乙模块,挪动端显示甲模块、丙模块,没过两天,需要又变了,pc 端要显示甲模块、乙模块,还有丙模块,挪动端去掉丙模块,增加丁模块。…… 太血腥了😱

所以,对本人好一点,如果条件容许,还是把 pc 端和挪动端离开写为好。京东、淘宝 …… 这些大网站也是这么干的。

💭 思路

如果咱们写好了两套计划:pc 端和挪动端,那怎么部署呢?这是就须要 nginx 大显神通了。在 nginx 中,能够依据用户申请的 user-agent 来判断是返回 pc 端还是挪动端。

💪 开干

nginx.conf 文件中增加配置:

server {
        listen 8081;
        server_name 127.0.0.1;

        location / {
            root /home/py/myDevelop/testNginx/pc/;

            if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') {root /home/py/myDevelop/testNginx/mobile/;}
            
            index  index.html index.htm;
        }

    }

阐明:这里就是用了一个 if 语句,应用 $http_user_agent 全局变量来判断用户申请的 user-agent,指向不同的root 门路,返回对应站点。

这样就能够达到目标了。

—(完)—

退出移动版