一.IP、端口即域名
IP
ip是互联网协议,用于设备分配唯一的数字地址,从而实现通信和数据抓包
通俗来讲,IP就相当于我们家庭的门牌号,并且这个地址是唯一的,通过这个地址可以精确找到我们家的位置,IP也是一样的道理,通过一串IP地址可以定位到要找的网络设备
端口
端口用于在设备内部区分并引导流量到特定的应用程序或者服务
端口就好像家里不同的房间,每个房间担任的服务不一样;打个比方,小明家的地址是XXX,他家的80号房间是卧室,90号房间是厨房,房间号就类似于端口号,如果我们想去小明家里做饭,首先要通过小明家的地址找到他家,并且我们需要厨房服务,那么我们就需要进入90号房间
端口也是同样道理,我们首先通过IP地址定位到网络设备,接着通过端口号找到我们应该进入哪个应用程序
域名
域名是互联网上网站的易于记忆的名称,他是一个映射到IP地址的字符串
域名相当于IP地址的代称,用户无需记住各种各样的IP地址来访问网站,取而代之的是记住更容易记忆的域名,如果把IP类比成电话号码,那么域名就好像我们通讯录里的备注,我们很难直接记住每个人的电话号码,但是记住通讯录里的名字就相对简单
我们在输入一串域名后,通过DNS查询,电脑会将这串域名转化为IP地址,从而进行访问
二.Docker
Docker是什么
我们经常遇到一个问题“这个程序在我环境里本来是好的,到你这为什么不行了呢?”,这里关键词是程序和环境,程序是跑在操作系统上的,而操作系统上又安装了不同版本的依赖库和配置,这些被程序所依赖的信息被称为环境,环境不同,程序就跑不起来

如果我们能将程序和环境一起打包,给到对方去运行,问题就解决了;docker就是一款可以将程序和环境打包并运行的工具软件
说白了,Docker就是打包“程序+运行环境”的工具
想要了解docker是什么首先要明确三个概念,”镜像、容器和仓库”
它将“程序 + 依赖 + 配置”做成一个可复制的包(镜像),运行时变成一个隔离的小进程;他可以解决同一套镜像在任何机器上运行效果一致,解决“这个应用程序在我的电脑上能跑,换一台电脑就跑不了”的问题
Docker的优点在于
想要快速上线一个应用,不需要手动装一堆依赖
可以把应用和配置打包,方便迁移、备份和回滚(对不满意的版本可以回滚到上一个版本)
一台机子上可以跑多个服务,彼此不冲突
1.镜像
通常我们的系统是由各个散落的不同文件构成的,如果我电脑有linux系统,但是小明电脑没有linux系统,我要如何让小明家的电脑也装上系统呢?就需要光盘或U盘,我们把系统放入到光盘里,再把光盘给到小明,小明就可以通过光盘装上系统了;那么问题来了,这么多散落的文件想要放进去就必须打包好,打包好的文件就成为了镜像文件。
通俗来讲,镜像就是一种文件类型,系统只能打包成这种类型,才能放到光盘和U盘之中
特点:由一层层文件系统叠起来(分层),体积小,拉取快,复用好
2.容器
容器就是镜像跑起来以后的实例,就像通过镜像文件安装,并且正在运行的应用
容器就相当于普通进程,但是被docker做了文件、网络、进程等级别的隔离
3.仓库(Registry / Repository)
仓库就是存放镜像的位置
三.Nginx反代
什么是反向代理
反向代理就是用户访问后端服务器过程中,担任数据转发和数据缓存的中间人作用
具体流程是:
当用户请求到达反向代理服务器,反向代理服务器将以客户端的身份拿着请求向后端服务器发起请求,后端服务器响应给反向代理服务器,反向代理服务器再响应给用户。
在这个过程中,用户只认为这是反向代理处理的请求,并不知道还有后端服务器存在
反向代理的优点
节省公网IP:域名是解析到反向代理服务器上,所以后端服务器不需要配置公网IP
提高安全性:对用户不可见,减少了直接攻击后端服务器的一些风险,并且可以在反向代理服务器上配置安全策略
统一访问入口:反向代理可以代理多个服务器,也就是多个项目,通过域名将不同的项目转发到不同的后端服务器上
提高访问速度:反向代理服务器可以将一些静态内容缓存到本地,下次再有请求可以直接本地读取
为什么使用Nginx反向代理
1.提高访问速度
当经过首次连接后,代理服务器会将这次的数据缓存下来,当下次用户再来访问时,可以优先在缓存里查找,提高了访问速度
2.防火墙
可以在代理服务器上设置规则,用来过滤
3.访问受限的站点
原理和vpn一样都是用一个虚拟地址实现跳转访问
4.进行负载均衡
当一台服务器访问量短时间过大到不能承受时,就会发生崩溃,所以可以按照需求使用多台服务器组成一个服务器集群来均分数据访问压力
5.进行动静分离
使用Nginx反向代理功能分发请求,所有动态资源的请求交给服务器处理,静态资源的请求由代理服务器直接返回给用户
Nginx有哪些优点
跨平台,配置简单
非阻塞、高并发连接:处理2-3万并发连接数
内存消耗小:开启10个Nginx只占用150M内存
成本低,且开源
稳定性高,宕机概率很小
内置有健康检查功能