美文网首页
负载均衡的设备转换、动静分离

负载均衡的设备转换、动静分离

作者: 杨丶子 | 来源:发表于2019-07-03 20:44 被阅读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

四、轮询算法

image

ip_hash
只要客户端ip地址相同就会被转发到同一台机器上

image

六、cookie与session会话区别

会话保持
cookie
session

1.共同点

存放用户信息
key value类型 变量和变量内容

2.区别

cookie:
存放在浏览器
为保证安全性,存放简单信息、钥匙
开发设置
响应服务器给你设置

session:
存放在服务器  
存放敏感信息
存放锁头

image

相关文章

  • 负载均衡的设备转换、动静分离

    一、准备环境 web01上 web02上 lb01上curl一下image 二、根据用户客户端的设备 进行转发 请...

  • Nginx + PHP + Tomcat 配置负载均衡, 动静分

    Nginx + PHP + Tomcat 配置负载均衡,和动静分离。 负载均衡设计 |名称|IP|描述||--:-...

  • 负载均衡+动静分离

    负载均衡 所有工作均在root权限下执行 1.准备工作16.04 俩台apache服务器,一台lnmp(nginx...

  • Nginx常用配置及其他跨域处理(前端)

    Nginx主要功能: 1. 负载均衡2. 反向代理3. 动静分离4. 配置https 负载均衡 负载均衡是一门计算...

  • Nginx使用

    一.nginx反向代理 二.nginx负载均衡 三.动静分离 四.总结

  • Nginx-服务器

    下载安装 配合Tomcat 反向代理 动静分离 负载均衡 Session存放

  • 前端必须知道的Nginx的常用配置

    Nginx主要功能 负载均衡 反向代理 动静分离 配置https 负载均衡 负载均衡是一门计算机网络技术,主要用来...

  • 2019-01-16

    ab:模拟并发的软件 Ngix作用:动静分离、反向代理。负载均衡 ================= (.rpm安...

  • 架构图解

    架构图片理解 单个服务器 单机 动静分离动静分离的架构 反向代理反向代理的架构 负载均衡 缓存相关 业务拆分

  • Nginx的简单解释

    nginx 除了可以做负载均衡还可以做方向代理和动静分离 负载均衡解释: 为了避免单点故障,修部署多个服务器,打个...

网友评论

      本文标题:负载均衡的设备转换、动静分离

      本文链接:https://www.haomeiwen.com/subject/iphrcctx.html