Nginx多个根取决于用户代理

时间:2019-07-01 12:15:11

标签: php nginx

我有两个应用程序,一个用于移动设备,另一个用于其他设备。

我想要做的是将两个应用程序显示在同一域而不是2个不同的域上

我有google,但每一个都显示url重定向。

下面是我尝试过的代码

server {
        listen 80;

        set $root /var/www/ng/webApplication;

        if ($http_user_agent ~* "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos") {
            set $root /var/www/html/mobileApplication;
        }

        root $root;
}

,但如果添加此条件,nginx将停止工作。

修改

nginx -t 结果

nginx:配置文件/etc/nginx/nginx.conf语法没问题

nginx:配置文件/etc/nginx/nginx.conf测试成功

修改 access.log

180.151.19.20--[02 / Jul / 2019:05:12:10 +0000]“ GET / HTTP / 1.1” 404178“-”“ Mozilla / 5.0(X11; Ubuntu; Linux x86_64; rv:67.0 )Gecko / 20100101 Firefox / 67.0“

也在浏览器中显示404未找到

1 个答案:

答案 0 :(得分:0)

假设两个应用程序都可以独立响应。您可以尝试使用反向代理选项。 Here is an example

    proxy_pass http://localhost/webApplication;

    if ($http_user_agent ~* "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos") {
        proxy_pass http://localhost/mobileApplication;
    }