Nginx-02-反向代理、负载均衡、动静分离

1:反向代理

1:实例:访问ngix地址,跳转到tomcat

1 、实现效果

打开浏览器,在浏览器地址栏输入地址 www.123.com ,跳转到 liunx 系统 tomcat 主页
面中

2:准备工作

1:linux系统安装tomcat,使用8080端口

  • tomcat 安装文件放到 liunx 系统中,解压

  • 在这里插入图片描述

  • 进入 tomcat 的 的 bin 目录中,./startup.sh 启动 tomcat 服务器

  • 在这里插入图片描述

2:windows中访问tomcat-记得开启端口
博主所用的是云服务,在防火墙规则中开启;如果linux可以使用以下命令开启防火墙端口
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd –reload
在这里插入图片描述

3:在 在 windows 系统的 host 文件进行域名和 ip
注:浏览器在访问地址时,会先去本地的hosts文件中查找,如果找不到就去网络上的dns域名解析器查找
在这里插入图片描述
在这里插入图片描述

4:配置nginx反向代理
配置nginx访问tomcat的应用端口
在这里插入图片描述

5:最终测试
在这里插入图片描述

2:实例:访问不同地址,跳转到不同的tomcat

1:实现效果

使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中
访问 http://www.wkl.com:8080/edu/ 直接跳转到 127.0.0.1:8080
访问 http:// www.wkl.com:8080/vod/ 直接跳转到 127.0.0.1:8081

2:准备工作

(1 )准备两个 tomcat 服务器,一个 8080 端口,一个 8081 端口
(2)创建不同tomcat的测试页面
在这里插入图片描述
在这里插入图片描述

3:配置nginx

在这里插入图片描述

4:最终测试

在这里插入图片描述
在这里插入图片描述

注:location 配置说明

在这里插入图片描述

  • 1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配
    成功,就停止继续向下搜索并立即处理该请求。
  • 2、~:用于表示 uri 包含正则表达式,并且区分大小写。
  • 3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。
  • 4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location块中的正则 uri 和请求字符串做匹配。
    注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

2:负载均衡

1:准备两个同时启动的tomcat

已启动,如上边配置的

2:在nginx.xml中配置

在这里插入图片描述

3:最终测试

在这里插入图片描述
在这里插入图片描述

注:nginx负载均衡分配策略

  • 第一种 轮询(默认)
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 。 掉,能自动剔除。

  • 第二种 weight
    weight 代表权重默认为 1, 权重越高被分配的客户端越多
    在这里插入图片描述

  • 第三种 ip_hash
    每个请求按访问 ip 的 的 hash 结果分配,这样每个访客固定访问一个后端服务器
    在这里插入图片描述

  • 第四种 fair (第三方)
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。
    在这里插入图片描述

3:动静分离

Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和
静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用 Nginx
处理静态页面,Tomcat 处理动态页面。动静分离从目前实现角度来讲大致分为两种,
一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;
另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开。
通过 location 指定不同的后缀名实现不同的请求转发。通过 expires 参数设置,可以使
浏览器缓存过期时间,减少与服务器之前的请求和流量。具体 Expires 定义:是给一个资
源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可,
所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件,
不建议使用 Expires 来缓存),我这里设置 3d,表示在这 3 天之内访问这个 URL,发送
一个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码
304,如果有修改,则直接从服务器重新下载,返回状态码 200。

1:资源准备

在/data/image/路径下准备一张图片
在这里插入图片描述

2:nginx配置

在这里插入图片描述

3:最终测试

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41694906/article/details/126371511