Nginx【根据用户设备调度】

该文描述了如何配置Nginx服务器作为负载均衡器,将流量导向不同设备。通过设置两个上游服务器(web-pc和web-phone),根据用户代理判断设备类型(手机或桌面浏览器),并将请求转发至对应服务器。同时,如果检测到Firefox或IE浏览器,则重定向至特定URL。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LB192.168.200.120
web-pc192.168.200.121
web-phone192.168.200.122

web-pc配置

[root@nginx ~]# vim /etc/nginx/conf.d/test-01.conf
server {
  listen 80;
  server_name www.test-01.org;
    root /code/test;
    location / {
      index index.html;
  }
}

[root@nginx conf.d]# mkdir -p /code/test
[root@nginx conf.d]# echo "PC...web-01" >> /code/test/index.html
[root@nginx conf.d]# systemctl reload nginx.service

web-phone配置

[root@nginx ~]# vim /etc/nginx/conf.d/test-01.conf 
server {
  listen 80;
  server_name www.test-01.org;
    root /code/test;
  location / {
    index index.html;
  }
}

[root@nginx ~]# mkdir -p /code/test/
[root@nginx ~]# echo "PHONE...web-02" >> /code/test/index.html
[root@nginx ~]# systemctl reload nginx.service

LB配置

[root@nginx ~]# vim /etc/nginx/conf.d/test-01.conf  
upstream pc {
  server 192.168.200.121:80;
}
upstream phone {
  server 192.168.200.122:80;
}
server { 
  listen 80;
  server_name www.test-01.org;
    location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      if ( $http_user_agent ~* "iphone|android|ipad" ) {
        proxy_pass http://phone;
      }
      if ( $http_user_agent ~* "firefox|IE" ) {
        return 302 'https://www.firefox.com.cn/';
      }

      proxy_pass http://pc;
  }
}

测试

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦有一把琐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值