day52-负载均衡补充

Nginx 资源分离场景实践

主机规划
1).根据 iphone.安卓,pc跳转不同的页面环境的规划。

主机名主机角色外网ip
lb01负载均衡10.0.0.5
web01提供pc端页面10.0.0.7
web02提供移动端页面(Mobile)10.0.0.8

配置后端web

web01,web02操作如下
1)修改配置文件

[root@web01 /etc/nginx/conf.d]# vim 01www.conf 
server   {
    listen      80;
    server_name   www.oldboy.com;
    access_log  /var/log/nginx/access_www.log  main;
    location / {
    root   /app/www;
    index  index.php index.html index.htm;
    }
}
  1. 检查语法后重启
nginx -t
systemctl reload nginx

web01操作如下
1)创建站点目录和首页文件

[root@web01 ~]# mkdir -p /app/www
[root@web01 ~]# echo 'this is pc website' >/app/www/index.html
[root@web01 ~]# cat /app/www/index.html
this is pc website

web02操作如下

[root@web01 ~]# mkdir -p /app/www
[root@web01 ~]# echo 'this is Mobile website' >/app/www/index.html
[root@web01 ~]# cat /app/www/index.html
this is Mobile website

lb01操作如下
1)curl命令检查配置结果。如下说明配置正常

[root@lb01 ~]# curl 10.0.0.7
this is pc website
[root@lb01 ~]# curl 10.0.0.8
this is Mobile website

配置负载均衡lb01

lb01操作如下
1)修改配置文件

 [root@lb01 ~]# vim /etc/nginx/nginx.conf
....................省略若干
 http {
...................省略若干
  upstream default {         ##创建一个存放pc端页面的池塘
  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;
 
  }
 


server {                     ###一个server相当于一个网站
    listen       80;          ##监听80端口默认
     server_name  www.oldboy.com;       ##可以使用什么域名访问
     location / {                                 ###用来匹配uri
       if ($http_user_agent ~* "Android|Iphone") {        ##如果客户端浏览器是android 或iphone就做下面的事 
        proxy_pass http://mobile;   ##就把请求丢给pc页面的·池塘
   }
     proxy_pass http://default;      ##默认把请求丢给pc页面池塘
       proxy_set_header Host $host;   ##修改负载均衡向web发送的请求头信息,
       proxy_set_header X-Forwarded-For $remote_addr;  ##让web节点日志中记录用户真实ip.

2)检查语法后重启

[root@lb01 ~]# nginx -t
[root@lb01 ~]# systemctl restart nginx

curl命令测试
-A 修改客户端浏览器信息

[root@lb01 ~]# curl   10.0.0.5
this is pc website
[root@lb01 ~]# curl  -A Android 10.0.0.5
this is Mobile website
[root@lb01 ~]# curl  -A Iphone 10.0.0.5
this is Mobile website

浏览器测试

9469008-ebc7673be720e83e.png
image.png

Nginx动静分离实战

Nginx动静分离后的好处

  • 动静分离中的好处:动静分离后,即使动态服务不可用,但静态资源不会受到影响。最重要的就是可以增加服务器支持的访问量。
    Nginx动静分离场景实践
    9469008-5cf344adb6fe2b8f.png
    VQ7_W3ZVARP1P8M26SSB.png

动静分离环境规划

主机名服务功能外网地址
lb01负载均衡nginx10.0.0.5
web01web/upload上传10.0.0.7
web02web/static静态资源10.0.0.7
web03web动态 默认10.0.0.7

配置文件配置

web01web02 web03 服务器配置文件修改为如下
1)修改配置文件

[root@web01 /etc/nginx/conf.d]# vim 01www.conf 
server   {
    listen      80;
    server_name   www.oldboy.com;
    access_log  /var/log/nginx/access_www.log  main;
    location / {
    root   /app/www;
    index  index.php index.html index.htm;
    }
}
nginx -t
systemctl reload nginx

web01操作如下
1)准备目录以及静态资源

mkdir -p  /app/www/upload/
echo  this is upload  >/app/www/upload/guoav.html 

web02操作如下

mkdir -p  /app/www/static/
echo  this is static  >/app/www/static/guoav.html 

web03操作如下

mkdir -p  /app/www/
echo  this is default  >/app/www/guoav.html 

lb01操作如下
1)测试web配置是否ok

[root@lb01 /etc/nginx]# curl  10.0.0.7/upload/guoav.html 
this is upload
[root@lb01 /etc/nginx]# curl  10.0.0.8/static/guoav.html 
this is static
[root@lb01 /etc/nginx]# curl  10.0.0.9/guoav.html 
this is default 

2)修改负载均衡配置文件

[root@lb01 ~]# vim /etc/nginx/nginx.conf
............省略若干
http {
............省略若干
    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  {                          ###一个server模块相对于一个网站
    listen 80;                        ###监听80端口
    server_name www.oldboy.com; ##可以使用什么域名进行访问
    location  /upload {          ##匹配请求uri中带/upload的
       proxy_pass http://upload;   ##将将请求扔给upload池塘
       proxy_set_header Host $host;  ##修改负载均衡发给web的请求头信息
       proxy_set_header X-Forwarded-For  $remote_addr;  ##让web日志中显示客户端真实ip
       }
    location  /static {     ##匹配请求uri中带/static的
       proxy_pass http://static;  ##将将请求扔给static池塘
       proxy_set_header Host $host;
       proxy_set_header X-Forwarded-For  $remote_addr;
    }
    location  / {    ##匹配默认。其他都没有匹配这个
       proxy_pass http://default;  ##将将请求扔给default池塘
       proxy_set_header Host $host;
       proxy_set_header X-Forwarded-For  $remote_addr;
    }    

3)浏览器进行测试


9469008-4863c254766c41bb.jpg
50)I`FF.jpg

Nginx高可用架构

keepalived高可用概述
1)什么是高可用

  • 什么是高可用双击热备,一般指2台机器启动着相同的业务系统,当有一台机器down机了,另一台服务器能快速的接管,对于访问的用户是无感之的。
    2)高可用使用场景
  • 业务系统需要保证7x24小时不down 机,作为业务来说随时都可以用,让你的业务系统更顽强。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值