一、Nginx资源分离概述
Nginx通过负载均衡实现手机与PC调度至不通的后端节点应用案例
使用pc访问时跳转到pc配置的页面,使用手机访问时可以跳转不同的页面
二、资源分离环境准备
主机 | 主机作用 | 外网ip | 内网ip | 端口 |
Lb01 | 负载均衡 | 10.0.0.4 | 172.16.1.4 | 80 |
web01 | 基于多端口多虚拟主机 | 10.0.0.7 | 172.16.1.7 | 8081-8083 |
三、编写nginx的conf文件
[root@web01 conf.d]# vim sj.linux.com.conf server { listen 8081; server_name sj.linux.com; location / { root /code/android; index index.html; } } server { listen 8082; server_name sj.linux.com; location / { root /code/iphone; index index.html; } } server { listen 8083; server_name sj.linux.com; location / { root /code/pc; index index.html; } }
重启nginx服务
[root@lb01 conf.d]# systemctl restart nginx
四、配置站点
[root@web01 conf.d]# mkdir /code/{android,pc,iphone} [root@web01 conf.d]# echo "我是安卓" > /code/android/index.html [root@web01 conf.d]# echo "我是iphone" > /code/iphone/index.html [root@web01 conf.d]# echo "我是computer" > /code/pc/index.html
五、配置负载均衡
[root@lb01 conf.d]# vim sj.linux.com.conf upstream anzhuo { server 172.16.1.7:8081; } upstream iphone { server 172.16.1.7:8082; } upstream pc { server 172.16.1.7:8083; } server { listen 80; server_name sj.linux.com; charset 'utf-8'; location / { if ($http_user_agent ~* "Android") { proxy_pass http://anzhuo; } if ($http_user_agent ~* "iPhone") { proxy_pass http://iphone; } if ($http_user_agent ~* "Chrome") { return 403; } proxy_pass http://pc; } }