乐趣区

关于springboot:京淘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;
    }
退出移动版