互联网架构-Nginx与高可用实战-048:Nginx反向代理&负载均衡

1 Nginx课程内容安全介绍

Nginx核心课程介绍
1.理解Nginx在实际项目应用场景
2.理解正向代理与反向代理区别
3.Nginx在Linux与Windows环境安装
4.Nginx的运行模型概念与日志管理
5.Nginx.Config核心配置文件与配置Https证书
6.基于Nginx解决跨域、实现防盗链、缓存、压缩
7.Nginx+Keepalived服务之间实现高可用
8.Nginx+Lua+OpenResty实现亿级别商品详情页面

课程内容:
1.DNS域名解析过程
2.反向代理与正向代理的介绍
3.基于Nginx实现反向代理
4.基于Nginx实现负载均衡

2 DNS域名解析整个过程

DNS域名解析的过程
1.先从本地host文件中使用域名获取对应的ip地址;
2.如果本地host文件中没有的话,就去运营商获取ip地址;
C:\Windows\System32\drivers\etc
在这里插入图片描述

3 使用Nginx搭建反向代理整个过程

Nginx基本的介绍
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx实际应用场景

  1. 反向代理 客户端使用Nginx转发到真实服务器访问,从而保证真实服务安全性;
  2. 负载均衡 能够对集群的节点实现负载均衡;
  3. 微服务网关入口 实现对服务转发 根据域名路由到真实的服务;
  4. 静态服务器 比Tomcat性能高很多,可以存放静态资源;
  5. 保护网站 nginx+lua实现对请求实现限流、熔断;

反向代理场景
在这里插入图片描述
阿里云如何搭建局域网?
阿里云同一个账号买的服务器默认在同一个局域网中。

4 Nginx实现反向代理与正向代理区别

正向代理场景
cdsn屏蔽,自行百度;
反向代理与正向代理区别
正向代理:cdsn屏蔽,自行百度;
反向代理:客户端请求达到代理服务,再通过代理服务器转发到真实服务器。

正向代理与反向代理区别:正向代理隐藏用户的真实行为、反向代理隐藏真实服务器。

5 windows环境中安装Nginx服务器

Windows环境快速入门
1.下载winDows安装包
2.解压当前目录
3.双击nginx.exe
4.Nginx默认端口号为80
在这里插入图片描述
Nginx目录结构介绍
Conf 配置文件(nginx核心配置文件 nginx.conf)
Contrib 存放一些实用工具
Docs 存放文档
Html 存放Html
Logs 存放日志文件
Temp 临时文件

6 使用Nginx配置反向代理方式

启动springboot项目

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.2.RELEASE</version>
    <relativePath/>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>
server:
  port: 8080
@RestController
@SpringBootApplication
public class IndexController {
    @Value("${server.port}")
    private String serverPort;

    @RequestMapping("/")
    public String index() {
        return "每特教育&蚂蚁课堂:" + serverPort;
    }

    public static void main(String[] args) {
        SpringApplication.run(IndexController.class);
    }
}

基于Nginx实现反向代理
C:\Windows\System32\drivers\etc\hosts文件中新增127.0.0.1 www.mayikt.com

     server {
        ## 使用nginx创建监听端口号为80
        listen       80;
        ## 访问地址
        server_name  127.0.0.1;
        ## 根据url规则进行匹配 /表示拦截所有请求
        location / {
            ## 反向代理配置
            proxy_pass http://127.0.0.1:8080;
            ## 默认查找index.html/index.htm
            index  index.html index.htm;
        }
    }

测试结果:
在这里插入图片描述
结果分析:访问www.mayikt.com,经过本地hosts文件配置实际访问127.0.0.1:80,nginx配置监听到该请求,反向代理请求到127.0.0.1:8080,即请求转发到本地项目。

7 服务器集群会存在哪些问题

在这里插入图片描述
服务器集群中会存在哪些问题
服务器集群中jar包都是完全相同的

  1. 分布式Session一致性问题 可以使用spring-session框架或者Token替代(redis共享)解决
  2. 分布式任务调度重复执行 分布式任务调度平台 xxl-job
  3. 分布式日志收集问题 elk+kafka日志收集

注意:分布式事务和节点集群没有关系

8 使用Nginx实现对服务负载均衡

基于Nginx实现负载均衡
五种负载均衡策略

1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3、IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

配置负载均衡策略
Nginx负载均衡提供上游服务器(真实业务逻辑访问的服务器)负载均衡、故障转移、失败重试、容错、健康检查等。
当上游服务器发生故障时,可以转移到其他上游服务器。

Upstream Server配置
upstream 主要配置如下:
IP地址和端口号:配置上游服务器的IP地址和端口

配置轮询负载均衡

    ###定义上游服务器(需要被nginx真实代理访问的服务器) 默认是轮询机制
    upstream  backServer{
	    server 127.0.0.1:8080;
	    server 127.0.0.1:8081;
	  }

    server {
        listen       80;
        server_name  www.mayikt.com;
        location / {
            proxy_pass http://backServer;
            index  index.html index.htm;
        }
    }

注意:负载均衡效果谷歌浏览器需要直接从浏览器中访问才可以生效

配置权重负载均衡

    ###定义上游服务器(需要被nginx真实代理访问的服务器) 默认是轮询机制
    upstream  backServer{
	    server 127.0.0.1:8080 weight=1;
	    server 127.0.0.1:8081 weight=2;
	  }

    
    server {
        listen       80;
        server_name  www.mayikt.com;
        location / {
            proxy_pass http://backServer;
            index  index.html index.htm;
        }
    }

测试结果:
在这里插入图片描述

9 软负载与硬负载实现有那些区别

软负载与硬负载区别
软负载是基于服务器上安装的特定软件比如Nginx实现负载均衡;
硬负载均衡是基于固定的硬件实现负载均衡比如F5

10 Nginx课后作业题

作业题:
1.根据域名转发不同服务
在这里插入图片描述
2.根据项目名称转发不同的服务
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值