京淘day08-京淘项目代理及Nginx

1.反向代理

1.1 反向代理概念

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
特点:
1.反向代理服务器是位于用户和目标服务器之间的.
2.用户以为反向代理服务器就是真实的服务器. 用户不知道真实的服务器到底是谁.
3.反向代理服务器保护服务端信息,称之为服务器端代理.
代理存在的原因: 用户由于某种原因无法直接访问目标服务器,完成指定的功能.
在这里插入图片描述

1.2 正向代理

1.2.1 正向代理介绍

正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
特点:
1.代理服务器位于用户与服务器之间
2.用户请求时,非常明确目标服务器到底是谁. 服务器不清楚到底是谁访问的我.以为是代理服务器直接发起的请求.
3.正向代理服务器保护了用户的信息,所以称之为客户端代理.
在这里插入图片描述

1.2.2 关于代理总结

1.反向代理是服务器端代理. 只要用户访问服务器,其实都是反向代理机制. 实现业务调用
2.正向代理是客户端代理.主要用户上网就就使用正向代理 实现的是网络通信头 网穿工具 夜神模拟器/花生壳

2.Nginx

2.1 Nginx服务器介绍

在这里插入图片描述

2.2 nginx介绍

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

2.3 Nginx安装使用

1).启动Nginx nginx启动会生成2个进程项
1.主进程 主要的作用是提供反向代理服务的. 在关闭主进程 内存大的
2.守护进程 防止主进程意外关闭的. 先关闭守护
在这里插入图片描述

2.4 Nginx命令

工作目录说明:要求在nginx.exe所在的根目录中执行
1.启动命令
start nginx Linux ./nginx
2.重名命令
nginx -s reload Linux: ./nginx -s reload
3.关闭命令
nginx -s stop Linux: ./nginx -s stop

2.5 Nginx反向代理原理

入门案例说明: http://localhost:80
在这里插入图片描述

3.实现图片回显

3.1 需求

实现图片地址的代理,将图片地址转向到具体的磁盘路径.
URL地址: http://image.jt.com/2020/12/0...
本地磁盘地址:
E:images/2020/12/02/7d7179100d1e423abc2546e77743947c.png

3.2 配置nginx

 #1.配置图片代理
    server {
        listen 80;
        server_name image.jt.com;

        location / {
            root E:\images;
        }
    }

3.3 编辑HOSTS文件

作用:实现本地域名与IP地址的映射
路径:
在这里插入图片描述
内容:

#@SwitchHosts! {"url": null, "icon_idx": 0, "title": "u5f53u524du7cfbu7edf hosts"}
# 京淘配置  
#192.168.126.129  image.jt.com
#192.168.126.129  manage.jt.com
#IP 域名  映射关系
127.0.0.1  image.jt.com
127.0.0.1  manage.jt.com
127.0.0.1  www.jt.com
127.0.0.1  sso.jt.com
127.0.0.1  localhost
#bug 丢最后一个字母问题 

3.4 图片回显的原理

在这里插入图片描述

4.实现域名代理

4.1 需求说明

需求:要求用户通过 http://manage.jt.com 访问localhost:8091的服务器.
实现方式: 利用反向代理机制实现

4.2 配置nginx

#2.配置后端服务器 manage.jt.com:80  localhost:8091
    server {
        listen 80;
        server_name manage.jt.com;

        location / {
            #发起url请求地址
            proxy_pass http://localhost:8091;
        }
    } 

5.Nginx实现tomcat集群部署

5.1 集群搭建原理

在这里插入图片描述

5.2 动态展现端口号

package com.jt.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class PortController {
    @Value("${server.port}")
    private int port;
    @RequestMapping("/getPort")
    public String getPort(){
        return "当前访问端口号:"+port;
    }
}

5.3 项目打包

说明:由于需要准备3台tomcat服务器. 所以端口号依次8081/8082/8083
在这里插入图片描述
cmd项目运行指令:java -jar 8081.war

5.4 Nginx 负载均衡

5.4.1 轮询策略

说明:根据配置文件的顺序,依次访问服务器.

#2.配置后端服务器 manage.jt.com:80  localhost:8091
    server {
        listen 80;
        server_name manage.jt.com;

        location / {
            #发起url请求地址
            #proxy_pass http://localhost:8091;
            proxy_pass  http://jtWindows;
        }
    }
#3.配置tomcat服务器集群 默认:轮询策略
    upstream jtWindows {
        server 127.0.0.1:8081;
        server 127.0.0.1:8082;
        server 127.0.0.1:8083;
    }

5.4.2 权重策略

说明:让性能更优的服务器处理更多的用户请求.

#3.配置tomcat服务器集群 默认:轮询策略,2.权重
    upstream jtWindows {
        server 127.0.0.1:8081 weight=6;
        server 127.0.0.1:8082 weight=3;
        server 127.0.0.1:8083 weight=1;
    }

5.4.3 IPHASH策略

需求:需要将用户与某台服务器进行绑定.

#3.配置tomcat服务器集群 默认:轮询策略,2.权重,3.iphash
    upstream jtWindows {
    ip_hash;
        server 127.0.0.1:8081 weight=6;
        server 127.0.0.1:8082 weight=3;
        server 127.0.0.1:8083 weight=1;
    }

缺点:
1.容易造成负载不均现象.
2.如果IP地址与用户绑定在一起,如果tomcat服务器宕机,则直接影响用户.
IPhash实用场景:一般进行压力测试时使用.

6.Nginx 高级属性

6.1 down属性

说明:如果服务器宕机,则可以通过down属性进行标识,被标识的服务器则不会再为用户提供支持.

#3.配置tomcat服务器集群 默认:轮询策略,2.权重,3.iphash
    upstream jtWindows {
    #ip_hash;
        server 127.0.0.1:8081 weight=6 down;
        server 127.0.0.1:8082 weight=3;
        server 127.0.0.1:8083 weight=1;
    }

6.2 backup 属性

备用机的设定.一般条件下备用机不干活的,但是当主机遇忙时,或者主机宕机时,才会访问备用机.

#3.配置tomcat服务器集群 默认:轮询策略,2.权重,3.iphash
    upstream jtWindows {
    #ip_hash;
        server 127.0.0.1:8081 weight=6 down;
        server 127.0.0.1:8082 weight=3;
        server 127.0.0.1:8083 weight=1 backup;
    }

6.3 tomcat服务器高可用

说明:如果人为的添加down属性 效率不高, 能否自动的检测服务器是否宕机,如果宕机,能否自动的标识为down.

#3.配置tomcat服务器集群 默认:轮询策略,2.权重,3.iphash
  #max_fails=1设定最大的失败次数。如果超过最多次数则表示为down 
  #fail_timeout=60s 失效的超时时间 60s
    upstream jtWindows {
    #ip_hash;
        server 127.0.0.1:8081 max_fails=1 fail_timeout=60s;
        server 127.0.0.1:8082 max_fails=1 fail_timeout=60s;
        server 127.0.0.1:8083 max_fails=1 fail_timeout=60s;
    }

你可能感兴趣的:(springboot,nginx,负载均衡)