01-basic
- ECS(Elastic Compute Service)
1. 初级
- 版本区别与安装
- 基础知识
- Nginx安装部署
- http协议基础
- 域名与dns
- 核心功能与应用场景
- 网站静态资源访问
- 虚拟主机
- 反向代理服务
- 负载均衡
- rewrite(防爬虫)
- 软防火墙
- Tengine的扩展模块
- 实战:构建一个可供大家访问的静态网站
多数的应用
- 反向代理
- Web服务器,用来做网站的
2. 高级
- 核心配置与调优
- 深入http1/2
- Squid
- 缓存服务
- 日志管理
- 高可用 keepalived
- 监控管理 zabbix prometheus
- kubernetes集群化管理
- lua语言基础
- Openresty扩展模块
- Nginx二次开发
- 实战:构建高性能、高可用、高并发的亿级流量网关系统
- Nginx之所以性能高,借助了linux操作系统特性,
epoll
对文件访问的加载,sendFile
特性… - Linux下Nginx纯静态访问的性能极高
- Squid缓存代理服务器。cdn主要是Squid实现的,跨网络的,并不同一服务器上,不在同一机房里加的
- 后端服务日志是审计日志,对业务的操作,对数据的curd。Nginx日志是轻量级的,用户低价值的请求,用户的行为轨迹,后期做画像系统、风险监控
3. 版本区别
- Nginx被做《硬件负载均衡器F5厂商》收购了。F5是一系列产品,是一个品牌
- Nginx 开源版
- Nginx plus 商业版
- 商业版主要是给大公司来使用,花钱买支持
- Web服务器本质上是:提供web访问能力的
1. Openresty(国产)
- Nginx是c写的,c++、php做二次开发成本太高了
- lua语言做二次开发,lua是内嵌在Nginx内部的,性能高,易学
- Openresty整合了大量lua脚本,可以连接各种中间件。最常用Kafka、Redis
2. Tengine(国产)
- Tengine 官网
- 淘宝网用C、C++对Nginx做的二次开发
3. Nginx plus(商业版本)
- 可以连接Nginx_controller控制面板,可视化的对Nginx进行监控。Openresty、Tengine都不具备
4. 其他web服务器
1. IIS
- Windows系统
性能最高,全部利用操作系统的特性来实现
- 接收请求,先收到的是操作系统
- 利用winOS,纯异步的网络、文件IO,提供高性能的访问
- Nginx是跑在CentOS(RedHat免费版本),基于Linux内核,和Windows内核性能差一点(包括unix)
- 开源社区在做Java研发,全是开源生态,eg:Redis没Windows版本。多数软件都是基于Linux开发,基于Linux特性。强行移植到Windows上,性能下降
2. Apache Httpd1/2(开源)
1.0
稳定,20历史2.0
效率高- 单纯的做web服务器,响应js、css、image,纯静态的资源。Java项目应用的很少了,现在web服务器更多的需要其提供网关的功能(即路由,请求来了路由到后端系统上)
- Apache基金会,不是商业组织
3. lighttpd
- 没什么人用了,开源社区也不活跃了
4. http
Content-Length
:指的是body的长度
1. 域名
- 顶级域名(唯一):
listao.cn
- 二级域名:
xxoo.listao.cn
- 三级域名:
xx.xxoo.listao.cn
- 范解析
.com
:公司缩写.org
:自发组织缩写.net
:工作室缩写
2. 域名访问
- hosts解析,存在则返回ip
- 本机配置DNS服务器,存在则返回ip
- 公网顶级注册商,找域名mapping的DNS,从DNS中得到域名mapping的ip
- 本机DNS存,域名和ip的映射,下次直接返回
1. hosts
- hosts文件被保护,怕恶意软件篡改ip
2. 本机DNS
- 向DNS服务器发送域名,获取ip
3. 公网DNS
- 买了域名,提供两个自带的DNS用
- 域名和ip的mapping关系。两个域名能mapping一个ip
- 平时ping的是域名
- tcp/ip协议只能向ip发请求,不能向域名发请求
➜ ~# ping www.listao.cn
PING www.listao.cn (192.168.*.*): 56 data bytes
64 bytes from 192.168.*.*: icmp_seq=0 ttl=63 time=0.729 ms
64 bytes from 192.168.*.*: icmp_seq=1 ttl=63 time=0.649 ms
^C
--- www.listao.cn ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.649/0.689/0.729/0.040 ms
3. 虚拟化
- 把一台主机,虚拟化为多台主机,物理上的虚拟,硬件隔离。相当一台主机上装了几个OS
- 代表:kvm。虚拟出来的东西叫vps
- 性能很大损耗
4. 容器化
- 软件隔离方式,在OS上创建出像是主机的主机,资源做不到像kvm一样隔离
- podman、docker
- 性能高,牺牲小
5. 虚拟主机
- 虚拟主机是一种特殊的软硬件技术,它可以将网络上的一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响的
- vhost,应用层软件来虚拟,Nginx虚拟多台主机,靠的是域名、ip和配置。完全没有隔离概念。无法对性能进行限制
- 只能限制请求连接数
- 限制空间大小,和软件没有太大关系,靠分配好的物理路径来限制
/vhost/fangxinkan.com
限制目录最多写多少字节。限制磁盘资源。cpu、内存完全限制不了