负载均衡的设备转换、动静分离
2019-07-03 本文已影响0人
杨丶子
一、准备环境
web01上
[root@web01 ~]# echo 'this is PC website' >/app/www/lidao.html
web02上
[root@web02 ~]# echo 'this is Mobile website' >/app/www/lidao.html
lb01上curl一下
image
二、根据用户客户端的设备 进行转发 请求:
image
1.配置 upstream 与location
定义upstream移动端与PC端
upstream default {
server 10.0.0.7:80 weight=1 max_fails=3 fail_timeout=10s;
}
upstream mobile {
server 10.0.0.8:80 weight=1 max_fails=3 fail_timeout=10s;
}
移动端的服务器池
location / {
if ($http_user_agent ~* "Android|IOS") {
proxy_pass http://mobile;
}
完整配置
[root@lb01 nginx]# vim nginx.conf
...
upstream default {
server 10.0.0.7:80 weight=1 max_fails=3 fail_timeout=10s;
}
upstream mobile {
server 10.0.0.8:80 weight=1 max_fails=3 fail_timeout=10s;
}
# include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name www.oldboy.com;
location / {
if ($http_user_agent ~* "Android|IOS") {
proxy_pass http://mobile;
}
proxy_pass http://default;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
[root@lb01 nginx]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb01 nginx]# systemctl reload nginx
记得将之前环境中的其他模块一起修改或暂时注释掉,不然语法会报错
2.curl一下查看结果
curl -A 可以指定系统
[root@lb01 nginx]# curl 10.0.0.5/lidao.html
this is PC website
[root@lb01 nginx]# curl -A ios 10.0.0.5/lidao.html
this is Mobile website
[root@lb01 nginx]# curl -A Android 10.0.0.5/lidao.html
this is Mobile website
3.可以下载火狐浏览器查看
http://www.firefox.com.cn/
image image image image image
安装插件流程:
三、根据 URI 中的目录地址实现代理转发(动静分离)
添加一台测试web03节点—10.0.0.9
将web03的配置与web01和web02配置相同
(/app站点目录与nginx.conf配置文件)
image
image
image
1.准备环境
www.oldboy.com/upload/index.html
www.oldboy.com/static/index.html
www.oldboy.com/index.html
#web01:
mkdir -p /app/www/upload/index.html
echo this is upload >/app/www/index.html
[root@web01 ~]# cat /app/www/upload/index.html
this is upload
#web02:
mkdir -p /app/www/static/index.html
echo this is static >/app/www/index.html
[root@web02 ~]# cat /app/www/static/index.html
this is static
#web03:
mkdir -p /app/www/index.html #之前已经有首页文件,只需修改内容
echo this is default >/app/www/index.html
[root@web03 ~]# cat /app/www/index.html
this is default
2.配置 upstream 与location
定义upstream.
upstream upload {
server 10.0.0.7:80 weight=1 max_fails=3 fail_timeout=10s;
}
upstream static {
server 10.0.0.8:80 weight=1 max_fails=3 fail_timeout=10s;
}
upstream default {
server 10.0.0.9:80 weight=1 max_fails=3 fail_timeout=10s;
}
添加location
server {
listen 80;
server_name www.oldboy.com;
location /upload {
proxy_pass http://upload;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
location /static {
proxy_pass http://static;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
location /default {
proxy_pass http://default;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
完整配置
image
[root@lb01 nginx]# vim nginx.conf
....
upstream upload {
server 10.0.0.7:80 weight=1 max_fails=3 fail_timeout=10s;
}
upstream static {
server 10.0.0.8:80 weight=1 max_fails=3 fail_timeout=10s;
}
upstream default {
server 10.0.0.9:80 weight=1 max_fails=3 fail_timeout=10s;
}
# include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name www.oldboy.com;
location /upload {
proxy_pass http://upload;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
location /static {
proxy_pass http://static;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
location / {
proxy_pass http://default;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
}
[root@lb01 nginx]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb01 nginx]# systemctl reload nginx
3.浏览器测试一下
上传
image静态
image动态(默认)
image
四、轮询算法
imageip_hash
image
只要客户端ip地址相同就会被转发到同一台机器上
六、cookie与session会话区别
会话保持
cookie
session
1.共同点
存放用户信息
key value类型 变量和变量内容
2.区别
cookie:
存放在浏览器
为保证安全性,存放简单信息、钥匙
开发设置
响应服务器给你设置
session:
存放在服务器
存放敏感信息
存放锁头
image