1.Nginx反向代理
1.1 实现域名的访问
1.1.1 业务需求
说明: 用户通过http://manage.jt.com的方式访问8091服务器.
代理方式: 反向代理
1.1.2 编辑hosts文件
1.1.3 配置域名代理
#配置后台管理系统 http://manage.jt.com:80
server {
listen 80;
server_name manage.jt.com;
#实现反向代理映射请求
location / {
proxy_pass http://localhost:8091;
}
}
1.1.4 页面效果展现
2.Tomcat集群部署
2.1 集群部署原理
2.2 动态获取当前域名
问题: 如何通过http://manage.jt.com/getPort 获取当前端口号!!!
package com.jt.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class PortController {
@Value("${server.port}")
private Integer port;
/**
* 动态获取用户端口号
*/
@RequestMapping("/getPort")
public String getPort(){
return "获取当前端口号:" + port;
}
}
2.3 项目打包
2.4项目集群部署
部署项目集群:
命令:
java -jar 8081.war
java -jar 8082.war
java -jar 8083.war
2.5 集群实现
#配置后台管理系统 http://manage.jt.com:80
server {
listen 80;
server_name manage.jt.com;
#实现反向代理映射请求
location / {
#proxy_pass http://localhost:8091;
proxy_pass http://jtTomcats;
}
}
#集群配置说明 upstream 集群 1.轮询
upstream jtTomcats {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
server 127.0.0.1:8083;
}
2.6 负载均衡
2.6.1 轮询方式
说明: 根据配置文件的顺序依次访问
#集群配置说明 upstream 集群 1.轮询
upstream jtTomcats {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
server 127.0.0.1:8083;
}
2.6.2 权重方式
应用场景: 要求让高性能的服务器(硬件设备),尽可能多的处理用户请求。
#集群配置说明 upstream 集群 1.轮询 2.权重
upstream jtTomcats {
server 127.0.0.1:8081 weight=6;
server 127.0.0.1:8082 weight=3;
server 127.0.0.1:8083 weight=1;
}
2.6.3 IPHASH策略
业务场景: 要求用户与服务器进行绑定
实际案例: 学生在线考试系统 登录之后 要求展现试卷. 如果考生意外退出,应该保留用户的考试信息。
固定其中一个端口
配置方法:
#集群配置说明 upstream 集群 1.轮询 2.权重 3.IPHASH
upstream jtTomcats {
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;
}
IPHASH算法:
2.7 Nginx属性说明
2.7.1 down属性
业务说明: 由于后台服务器宕机,可能没有及时修改nginx配置文件 用户访问会出现卡顿的现象。
属性说明: 当用户服务器宕机之后 需要通过down属性进行标识, nginx不会再将请求发往故障机。
#集群配置说明 upstream 集群 1.轮询 2.权重 3.IPHASH
upstream jtTomcats {
#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;
}
2.7.2 backup属性
说明: backup用来标识备用机. 当主服务器宕机或者主服务器遇忙时请求备用机。
#集群配置说明 upstream 集群 1.轮询 2.权重 3.IPHASH
upstream jtTomcats {
#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;
}
2.7.3 tomcat高可用机制
业务场景说明:
当tomcat服务器发生宕机现象时,由nginx自己判断服务器是否可用.如果发现服务器宕机,.则自动的标识为down。
#集群配置说明 upstream 集群 1.轮询 2.权重 3.IPHASH
# max_fails=1 最大失败次数 down标识为down
# fail_timeout=60s; down属性的周期
upstream jtTomcats {
#ip_hash;
server 127.0.0.1:8081 down;
server 127.0.0.1:8082 max_fails=1 fail_timeout=60s;
server 127.0.0.1:8083 max_fails=1 fail_timeout=60s;
}
3 Linux
3.1 虚拟机环境搭建
1.设定虚拟机网络 编辑-虚拟机网络编辑器
2).默认网关展现
3).DHCP设置
4).IP地址校验
虚拟机ip地址
3.2 关于虚拟机网络模式说明
3.2.1 桥接模式
相当于将虚拟机直接接入局域网中,这时会独占IP地址.可以与本机通过局域网通信。
特点:所有的在局域网中的IP都可以访问虚拟机。
依赖:如果设置桥接模式,则必须有物理设备的支持。
3.2.2 NAT模式
相当于在网络环境中会开辟一块全新的网络空间.只有主机能够访问.
特点:NAT模式只有主机访问,其他人通过IP地址禁止访问.
-
场景1: 小李刚去公司,需要从公司的服务器上下载源码,问虚拟机应该采用哪种模式?
桥接模式 如果需要连接其他设备 设定桥接 -
场景2: 小李由于频繁的出入甲方/公司,请你为他挑选一种网络模式,使得小李不用频繁的切换IP?
NAT模式 如果连接自己的设备 一般设定NAT
3.3 关于IP说明
启动Linux系统,获取当前ip
登录账号密码 ,统一 root
输入命令:ip addr
有时启动Linux系统时,可能获取不到当前的IP地址.
如图所示:
如何动态获取:
service NetworkManager stop
chkconfig NetworkManager off 永久关闭 Manager网卡
service network restart 重启network网卡
3).window系统动态连接Linux系统
通过Ping命令检查网络通讯
3.4 Linux概述
3.4.1 Linux介绍
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日
(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
3.4.2 Linux发展史
1965 年,Bell 实验室、MIT、GE(通用电气公司)准备开发 Multics 系统,为了同时支持 300 个终端访问主机,但是 1969 年失败了;
(刚开始并没有鼠标、键盘,输入设备只有卡片机,因此如果要测试某个程序,则需要将读卡纸插入卡片机,如果有错误,还需要重新来过; Multics:Multiplexed Information and Computing Service)
1969 年,Ken Thompson(B语言之父)利用汇编语言开发了 FIle Server System(Unics,即 UNIX 的原型)
(因为汇编语言对于硬件的依赖性,因此只能针对特定硬件; 只是为了移植一款“太空旅游”的游戏;)
1973 年,Dennis Ritchie 和 Ken Thompson 发明了 C 语言,而后写出了 UNIX 的内核
(将 B 语言改成 C 语言,由此产生了 C 语言之父; 90% 的代码是 C 语言写的,10% 的代码用汇编写的,因此移植时只要修改那 10% 的代码即可;)
1977 年,Berkeley 大学的 Bill Joy 针对他的机器修改 UNIX 源码,称为BSD(Berkeley Software Distribution)
1979 年,UNIX 发布 System V,用于个人计算机;
1984 年,因为 UNIX 规定:“不能对学生提供源码”,Tanenbaum 老师自己编写兼容于 UNIX 的Minix,用于教学;
1984 年,Stallman 开始 GNU(GNU’s Not Unix)项目,创办 FSF(Free Software Foundation)基金会;
(产品:GCC、Emacs、Bash Shell、GLIBC; 倡导“自由软件”; GNU 的软件缺乏一个开放的平台运行,只能在 UNIX 上运行; 自由软件指用户可以对软件做任何修改,甚至再发行,但是始终要挂着 GPL 的版权; 自由软件是可以卖的,但是不能只卖软件,而是卖服务、手册等;)
1985 年,为了避免 GNU 开发的自由软件被其他人用作专利软件,因此创建 GPL(General Public License)版权声明;
1988 年,MIT 为了开发 GUI,成立了 XFree86 的组织;
1991 年,芬兰赫尔辛基大学的研究生
Linus Torvalds 基于 gcc、bash 开发了针对 386 机器的 Linux 内核;
1994 年,Torvalds 发布 Linux-v1.0;
1996 年,Torvalds 发布 Linux-v2.0,确定了 Linux 的吉祥物:企鹅;
如图-9所示
3.4.3 Linux系统层级结构
3.4.4Linux特点
1.系统开源并且免费
2.对硬件要求很低 800M 3-4
3.系统稳定性强
4.系统安全性更好 (军工企业 断网)
3.4.5Linux系统主流产品
如图-10所示
命令大全:Linux全面讲解与命令大全
3.5 远程连接工具
MobaXterm_Personal_20.3
官网:https://mobaxterm.mobatek.net/
下载完成安装后,打开软件:
选择SSH
新建用户
为了方便后期学习,全部输入root
输入密码后: