Nginx(反向代理+负载均衡+动静分离+集群主备)

Nginx(反向代理+负载均衡+动静分离+集群主备)_第1张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第2张图片
如果Linux系统中没有安装wget,需要先行安装
在这里插入图片描述
安装后的目录
Nginx(反向代理+负载均衡+动静分离+集群主备)_第3张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第4张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第5张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第6张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第7张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第8张图片
通过浏览器进行访问
Nginx(反向代理+负载均衡+动静分离+集群主备)_第9张图片
在这里插入图片描述

Nginx(反向代理+负载均衡+动静分离+集群主备)_第10张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第11张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第12张图片

Nginx(反向代理+负载均衡+动静分离+集群主备)_第13张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第14张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第15张图片
默认是轮询方式,可以更改为权重方式
Nginx(反向代理+负载均衡+动静分离+集群主备)_第16张图片

正向代理:
客户端(需要配置代理服务器)—>局域网—>Internet
客户若访问局域网外部的Internet,需要通过局域网的代理服务器进行

Nginx(反向代理+负载均衡+动静分离+集群主备)_第17张图片

反向代理
客户端—>反向代理服务器---->目标服务器
客户端不需要任何配置,只需要将请求发送给反向代理服务器
对外暴露的是代理服务器,而隐藏真实的目标服务器
Nginx(反向代理+负载均衡+动静分离+集群主备)_第18张图片

负载均衡
增加服务器的数量,将请求分发到各个服务器上面。
客户端(15个请求)—>反向代理服务器—>服务器(3台)
Nginx(反向代理+负载均衡+动静分离+集群主备)_第19张图片

动静分离
为了加快网站速度,将动态页面和静态页面分开放到不同的服务器
Nginx(反向代理+负载均衡+动静分离+集群主备)_第20张图片

==============================================

nginx常用的命令:

必须进入nginx目录中使用命令 /usr/local/nginx/sbin

在这里插入图片描述
nginx配置文件:
Nginx(反向代理+负载均衡+动静分离+集群主备)_第21张图片
主要有三部分构成:全局块+event块+http块
全局块:配置运行nginx服务器的用户(组)、允许生成的worker process数,进程PID存放路径、日志存放路径和类型以及配置文件的引入等
event块:nginx服务器与用户网络的连接
http块:配置最频繁的部分,代理、缓存、日志等第三方模块绑定

docker容器中的配置文件中位置:etc/nginx/
Nginx(反向代理+负载均衡+动静分离+集群主备)_第22张图片

==================

配置nginx反向代理
浏览器www.123.com —> 跳转linux系统的tomcat主页
对于windows浏览器需要通过本地的host文件找到 配置域名映射的ip,若没有则通过网络上的DNS进行匹配
Nginx(反向代理+负载均衡+动静分离+集群主备)_第23张图片

Nginx(反向代理+负载均衡+动静分离+集群主备)_第24张图片

docker run --name my_tomcat -it -d -p 8080:8080 tomcat   启动tomcat
docker run -p 80:80 -d nginx		启动nginx
docker exec -it 469bfd0dc27a /bin/bash   进入容器内部

第一步:C:\Windows\System32\drivers\etc 找到host文件
如下配置后,可以直接通过域名www.123.com访问到指定的页面
Nginx(反向代理+负载均衡+动静分离+集群主备)_第25张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第26张图片
第二步:在nginx进行反向代理配置
进入容器内部修改配置文件如下(系统下必须安装:apt install vim):docker exec -it c1ea5ab43c78 /bin/bash
修改etc/nginx目录下的nginx.conf
若出现 command not found
则使用以下命令:

apt-get update
apt-get install -y vim

Nginx(反向代理+负载均衡+动静分离+集群主备)_第27张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第28张图片

Nginx(反向代理+负载均衡+动静分离+集群主备)_第29张图片
nginx -t 查看是否修改成功
在这里插入图片描述

然后重新运行容器:
docker stop c1ea5ab43c78
docker restart c1ea5ab43c78

docker rm -f 1e560fca3906 删除容器


根据客户端的不同请求路径,通过nginx进行判断,从而跳转到不同的服务器
在这里插入图片描述

  1. 准备两个tomcat服务器,端口分别为8080,8081
    通过tomcat根目录下的conf中server.xml修改端口
    在这里插入图片描述

  2. 在tomcat中的webapps目录下创建一个文件夹edu,并放入a.html
    在另一个webapps以同样的方式创建vod,并放入a.html
    通过浏览器进行访问http://ip:端口号/edu/a.html或者http://ip:端口号/vod/a.html

  3. 在nginx配置文件中,进行反向代理
    Nginx(反向代理+负载均衡+动静分离+集群主备)_第30张图片

  4. 开放防火墙端口号,并重新启动nginx
    Nginx(反向代理+负载均衡+动静分离+集群主备)_第31张图片

关于nginx配置文件中location中的注意事项:
Nginx(反向代理+负载均衡+动静分离+集群主备)_第32张图片

====================================

配置负载均衡
在这里插入图片描述
在nginx的配置文件中实现负载均衡的配置
效果是:每次请求都会跳转到不同的服务器
Nginx(反向代理+负载均衡+动静分离+集群主备)_第33张图片

对于负载均衡的分配方式,有以下集中策略:

  1. 轮询,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,自动剔除
  2. weight,权重默认1,权重越高被分配的客户端越多
    Nginx(反向代理+负载均衡+动静分离+集群主备)_第34张图片
  3. ip_hash 方式
    每个请求按访问的ip的hash结果分配,每个访客固定访问一个后端服务器,可以解决session的问题。第一次访问的服务器就决定了后续访问的依然是该服务器
    Nginx(反向代理+负载均衡+动静分离+集群主备)_第35张图片
  4. fair(第三方)
    按照请求的服务响应时间来分配,响应时间短的优先分配
    Nginx(反向代理+负载均衡+动静分离+集群主备)_第36张图片
    =======================

动静分离
把动态去请求和静态请求分开,而不是单纯的把静态页面和动态页面物理分离
可以理解为:使用Nginx处理静态页面,Tomcat处理动态页面
Nginx(反向代理+负载均衡+动静分离+集群主备)_第37张图片

大致分为两种来实现动静分离:

  1. 纯粹把静态文件独立成单独的域名放在静态服务器上

  2. 动态和静态文件混在一起,通过nginx来分开

过程:
在data目录下,分别创建两个目录image(01.jpg)、 www(a.html)
Nginx(反向代理+负载均衡+动静分离+集群主备)_第38张图片
通过nginx配置访问
Nginx(反向代理+负载均衡+动静分离+集群主备)_第39张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第40张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第41张图片
最终浏览器访问方式:
配置文件中的autoindex on; 列出文件夹中的内容
Nginx(反向代理+负载均衡+动静分离+集群主备)_第42张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第43张图片

=======================

高可用
如果nginx宕机,但请求过程仍然可用
对外提供一个虚拟的ip:192.168.17.50 进行绑定
Nginx(反向代理+负载均衡+动静分离+集群主备)_第44张图片
需要两台linux环境nginx服务器,并安装好keepalived
安装后在etc中keepalived中的配置文件中进行配置

Nginx(反向代理+负载均衡+动静分离+集群主备)_第45张图片Nginx(反向代理+负载均衡+动静分离+集群主备)_第46张图片

keepalived.conf文件中进行高可用配置
指定主、备机,并指定脚本文件(检测nginx是否活着)
Nginx(反向代理+负载均衡+动静分离+集群主备)_第47张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第48张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第49张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第50张图片
在这里插入图片描述
Nginx(反向代理+负载均衡+动静分离+集群主备)_第51张图片

======================

高可用配置信息keepalived.conf
全局配置
检测脚本配置
虚拟ip配置

全局配置中,配置访问到的主机名(先通过vi /etc/host 进行设定)
在这里插入图片描述
在这里插入图片描述
Nginx(反向代理+负载均衡+动静分离+集群主备)_第52张图片

检测脚本配置(脚本中的条件成立,执行间隔操作,权重)
Nginx(反向代理+负载均衡+动静分离+集群主备)_第53张图片

虚拟ip的配置
Nginx(反向代理+负载均衡+动静分离+集群主备)_第54张图片
Nginx(反向代理+负载均衡+动静分离+集群主备)_第55张图片
脚本
Nginx(反向代理+负载均衡+动静分离+集群主备)_第56张图片

=================

Nginx原理
Nginx(反向代理+负载均衡+动静分离+集群主备)_第57张图片
nginx启动后有两个进程:master、worker
Nginx(反向代理+负载均衡+动静分离+集群主备)_第58张图片
worker如何进行工作?
一个master,多个worker的好处:
可以使用nginx -s reload热部署
每个worker独立进程
worker数量和CPU核数相等最合适
Nginx(反向代理+负载均衡+动静分离+集群主备)_第59张图片
worker的连接数
发送请求,占用了worker几个连接数(2个或4个)
客户端—>nginx—>静态资源(2个)
客户端—>nginx—>tomcat(4个)
nginx有一个master,四个worker,每个worker支持最大的连接数据是1024,支持最大的并发数是多少
1024X4/2
公式如下:
在这里插入图片描述

你可能感兴趣的:(nginx,运维)