
Git | Linux | Docker | K8S
文章平均质量分 85
运维相关知识分类
Wang's Blog
Keep learning for the innovation era.
展开
-
Linux: 任务的定时与延期
ls 这种命令是立刻执行的命令,在linux中命令还可以延时执行,它们都涉及到时间的观念。原创 2024-11-21 22:45:00 · 899 阅读 · 0 评论 -
DEVOPS: K8S 集群服务的原理与实现
理解 K8S 集群服务的概念,是比较不容易的一件事情尤其是当我们基于似是而非的理解,去排查服务相关问题的时候,会非常不顺利这体现在,对于新手来说,ping 不通服务的 IP 地址这样基础的问题,都很难理解而就算对经验很丰富的工程师来说,看懂服务相关的 iptables 配置,也是相当的挑战。原创 2024-11-21 14:44:29 · 1131 阅读 · 0 评论 -
Nginx: 实现Uwsgi代理
从 nginx 这一层反向代理往程序框架这一层里面,我们想了解它具体的一个实现过程是什么样子的uwsgi 的诞生顺序这里 wsgi 是 python 语言的通用接口标准uwsgi 是实现 wsgi 的一种接口python 为啥使用 uwsgi 接口标准并且通过 nginx 来进行代理1 )安全通过Nginx做代理比HTTP直连更安全,并且Nginx可以实现很多的访问控制作为一个代理层可结合 lua 来实现更多的一些代理层和应用层的访问控制。原创 2024-11-16 23:50:16 · 975 阅读 · 0 评论 -
Nginx: 实现Websocket代理
Nginx 代理模式中,大多都是基于 HTTP 的 Process 模块来对应设置的除此之外,Nginx 还可以实现更多细小化的协议的HTTP代理,比如 ws 的代理。原创 2024-11-16 19:34:27 · 2153 阅读 · 0 评论 -
Nginx: 反向代理和动静分离概述
从而将动态请求分配给应用服务器,由应用程序服务器来进行处理, 处理完之后再返回给Nginx。当用户的请求到达Nginx的时候,Nginx可以反向代理跟后端的应用服务器进行交互。Nginx 和 应用程序服务器交互的时候,它可以依据哪一些协议来进行工作。大致可以把用户来的流量分为从四层和七层这样一个角度来说。静态资源响应能力很强,动态资源需要业务逻辑计算。3 )Nginx作为反向代理可支持的协议。一台不够,可以多扩展几台。并发请求小,前后端耦合。1 )反向代理的模型。2 )反向代理的优势。原创 2024-08-26 19:45:00 · 1037 阅读 · 0 评论 -
DEVOPS: 认证与调度
不知道大家有没有意识到一个现实,就是大部分时候,我们已经不像以前一样通过命令行,或者可视窗口来使用一个系统了现在我们上微博、或者网购,操作的其实不是眼前这台设备,而是一个又一个集群通常,这样的集群拥有成百上千个节点,每个节点是一台物理机或虚拟机,集群一般远离用户,坐落在数据中心为了让这些节点互相协作,对外提供一致且高效的服务,集群需要操作系统,Kubernetes 就是这样的操作系统比较 Kubernetes 和单机操作系统,Kubernetes 相当于内核,它负责集群软硬件资源管理。原创 2024-10-28 15:12:53 · 1227 阅读 · 0 评论 -
DEVOPS: 集群伸缩原理
阿里云 K8S 集群的一个重要特性,是集群的节点可以动态的增加或减少有了这个特性,集群才能在计算资源不足的情况下扩容新的节点,同时也可以在资源利用率降低的时候,释放节点以节省费用理解实现原理,在遇到问题的时候,我们就可以高效地排查并定位原因我们的讨论基于1.12.6 版本总体上来说,K8S 集群节点的增加与减少,主要涉及四个组件,分别是 ClusterAutoscaler,ESS,管控以及节点本身(准备或清理)根据场景不同,我们需要排查不同的组件。原创 2024-10-28 19:00:00 · 1150 阅读 · 0 评论 -
DEVOPS: K8s集群网络
阿里云 K8S 集群网络目前有两种方案一种是 flannel 方案另外一种是基于 calico 和弹性网卡 eni 的 terway 方案Terway 和 flannel 类似,不同的地方在于terway 支持 Pod 弹性网卡,以及 NetworkPolicy 功能这里,我们以 flannel 为例,分析阿里云 K8S 集群网络的实现方法我们会从两个角度去分析一个是网络的搭建过程另外一个是基于网络的通信我们的讨论基于当前的 1.12.6 版本。原创 2024-10-27 15:52:39 · 1393 阅读 · 0 评论 -
DEVOPS: K8s集群控制器
当我们尝试去理解 K8S 集群工作原理的时候,控制器肯定是一个难点这是因为控制器有很多,具体实现大相径庭;且控制器的实现用到了一些较为晦涩的机制,不易理解。但是,我们又不能绕过控制器,因为它是集群的“大脑”当我们尝试去理解 K8S 集群工作原理的时候,控制器肯定是一个难点这是因为控制器有很多,具体实现大相径庭;且控制器的实现用到了一些较为晦涩的机制,不易理解但是,我们又不能绕过控制器,因为它是集群的“大脑”今天这篇文章,我们通过分析一个简易冰箱的设计过程。原创 2024-10-27 15:23:37 · 1051 阅读 · 0 评论 -
DEVOPS: 容器与虚拟化与云原生
- DevOps 是一个必然趋势,是一种方法,也是一种观念- 原始的互联网公司工作模式是瀑布流,但用户越多,需求越大,公司的管理,人力成本都是问题- 而如果更新间隔太慢,一定会导致用户的满意程度下滑,DevOps 的观念应运而生- DevOps 实际上是两个单词:Development 和 Operations- 开发人员:根据需求情况,把需求拆分成多个小需求,小步快跑大幅增加需求完成的频率- 运维人员:运用自动化和 CI/CD 的概念,运用工具,实现稳定、快速的版本更新上线- 打破开发人员和运原创 2024-10-26 19:55:05 · 895 阅读 · 0 评论 -
Linux: Shell编程中的应用之基于sh进行数据统计
### 应用场景- 对一个英语字典做统计- 统计字符出现最多,并进行排序输出**实现思路**- 这里需要 * 统计每个字母出现的次数 grep 命令 * 小写转大写- 可以先在命令行实验 * $ `grep -i a words.txt` * -i 忽略大小写 * 这里每一行可能包含不止一个匹配的字母 * $ `grep -io a words.txt` * -o 只显示匹配行中不为空的匹配部分,这样的部分被单独显示在一行上 * 为了统计某个字母的所有统计,需要原创 2024-10-26 13:23:14 · 638 阅读 · 0 评论 -
Linux: Shell编程中的应用之基于sh脚本生成网页
### 应用场景- 使用脚本,生成一个网页,这个网页中展示图片- 网页中展示的图片是一张张的缩略图- 点击缩略图,链接到原始图片,我们实现这样的功能### 环境准备1 )准备目录和文件- $ `mkdir gallery`- $ `cd gallery && mkdir thumbnails` 这里创建一个缩略图目录原创 2024-10-26 12:44:52 · 401 阅读 · 0 评论 -
Linux: Shell编程中的循环与函数
- 循环语句使我们能够重复一个代码块任意多次- 主要的循环语句有三种:while, until,for1 ) while 循环 - 基本结构 ```conf while [条件测试] do 做某事 done ```- 或 ```conf while [条件测试]; do 做某事 done ```- 下面是 while 循环流程图原创 2024-10-26 06:45:00 · 1297 阅读 · 0 评论 -
Linux: Shell编程入门
- shell 是 在英语中 壳, 外壳的意思- 可以把它想象成嵌入在linux这样的操作系统里面的一个微型的编程语言- 不像C语言, C++ 或 Java 等编程语言那么完整,它可以帮我们完成很多自动化任务- 例如保存数据监测系统的负载等等,我们同样可以用C语言完成类似的任务- Shell 相比C语言的优势在于它是完全嵌入在linux中的,不需要安装,不需要编译- 而且我们不需要学习太多新的东西- 我们在linux中用的那些命令,都可以用在shell语言中,如:ls, cd, grep原创 2024-10-25 12:18:27 · 1453 阅读 · 0 评论 -
Nginx: 基于多网卡,端口,域名的虚拟主机实现
这里直接配置 nginx,下面是核心配置。1 ) 基于 多IP 的虚拟主机。2 ) 基于 多端口 的虚拟主机。3 ) 基于 域名 的虚拟主机。2 )Nginx 核心配置。准备好 host: $1 ) 网卡和IP配置。检查,重载配置,并访问。原创 2024-09-03 14:39:25 · 1516 阅读 · 0 评论 -
Nginx: 模块化管理编译安装与配置结构
upstream模块, 就是实现了反向代理的功能,只要有这个模块 Nginx 就能够将一个客户端的用户请求真正的转发到一个后端的一个服务器,可能是具体的应用服务器,从而它还能够实现在后端服务器结束有具体的响应内容之后,从后端的服务器上读取响应的内容,从而继续封装返回给客户端,对于upstream模块来说,其实也是一种特殊的handler模块,只不过,这个响应模块它不是自己来处理的而从后端服务器上读取的。主要是三大模块,第一个是events模块,第二个是http模块,第三个是server模块。原创 2024-09-03 12:44:36 · 975 阅读 · 0 评论 -
Nginx: 配置文件重载的原理和热部署
注意,新版本的nginx的目录结构需要与旧版一致。假设主目录是 /opt/nginx 下 $reload 重载配置文件的流程。2 )实际演示升级Nginx程序。1 )热部署的升级流程。原创 2024-09-02 20:28:56 · 948 阅读 · 0 评论 -
Nginx: 进程结构和信号量管理
通过 kill 命令,可以给某个进程PID发送很多的信号量,通常,直接使用 kill pid 的时候。可见, kill -9 可以发送一个 SIGKILL 的信号,它不管当前进程处于什么状态,无条件终止。在Linux 操作系统中,对于进程管理是通过信号量来进行管理的, 比如说我们通常使用的q命令。2.1 使用信号量管理 master 和 worker。以上可以看到,现在大概是有 64 种信号量。2 )使用信号量管理 Nginx。1 )Linux 的信号量管理。常用信号量, 参数含义。原创 2024-09-02 11:30:20 · 1194 阅读 · 0 评论 -
Nginx: TCP建立连接的优化和启用Fast Open功能
因为 /proc 下都是临时文件,改了临时文件会立即生效,但是重启后就变回去了。以上都是默认值,看起来值比较小,如果要更改,不能直接更改上述配置文件。现在,我们可以去修改 nginx 的 backlog 队列。1.3 2011年 Google 提出的TFO的优化。1.1 最初RFC中实现 TCP 协议的状态如下。1 ) TCP 的 Fast Open。2 )实际环境开启 Fast Open。通过这个命令,查看系统内核参数 $1.2 RFC 优化的过程。我们现在可以修改 $检查配置是否生效,$原创 2024-09-01 21:59:08 · 1969 阅读 · 4 评论 -
Nginx: 性能优化之提升CPU效率以及TCP的三次握手和四次挥手
们从这种宏观上来说,多个进程,它是一个并行执行的,但从CPU的角度,同一时刻只能干一件事。整个CPU就是在循环往复的去执行每一个进程,在操作系统中,所有进程都会被分配一些时间片。比如,Kafka 进程被调度到CPU上执行,执行完了以后,会拿下来,到底它去执行多久。如果说,这个进程的优先级是比较高的话,它相应的得到的CPU的执行的时间片就会多一些。对CPU调度的时候,它在某一个时刻,它只能有一个会被调度到CPU上。有一个大的原则,比如,某一个进程的优先级是最高的。原创 2024-09-01 17:31:26 · 1610 阅读 · 0 评论 -
Nginx: 使用KeepAlived配置实现虚IP在多服务器节点漂移及Nginx高可用原理
2台 linux , 一主一备 * 节点1:192.168.184.30 CentOS 7 Master * 节点2:192.168.184.40 CentOS 7 Backup * VIP 192.168.184.50- 安装 KeepAlived, $ `yum install keepalived` * 注意,安装好yum源,base 源就有这个软件 * 两台都执行安装- 关闭selinux 和 防火墙 * $ `setenforce原创 2024-08-31 22:39:56 · 2205 阅读 · 1 评论 -
Nginx: 高可用和与虚拟路由冗余协议VRRP原理以及KeepAlived软件架构
假定是这样一个最传统的一个CS模式的一个客户服务器模式 * 这里有用户和一台服务器 * 服务器可能是mysql, 也可能是webserver, 或其他服务器- 想实现服务可用的一个三要素 * 1.1 ) server 需要公网的ip地址以及申请一个域名 * 1.2 ) 需要服务软件和相关端口 * 1.3 ) 存在对应的数据,如: * webserver需要css, html, js 等 * sqlserver需要库和表原创 2024-08-31 13:43:23 · 1107 阅读 · 0 评论 -
Nginx: 搭建HTTPS服务器(私有CA服务器的搭建,Nginx公私钥生成,证书签发和配置)的过程
现在我们正式的去配置一个私有的CA服务器真正的CA服务器在实际的生产中可能并不会用在对公网的一些HTTPS服务中,通常会去买一些真正的SSL证书包括阿里云或者是腾讯云等等,上面都有一些免费的SSL证书这些证书也是向所谓的一个CA服务商来购买的为了更好理解整个HTTPS证书的一个申请签发的一个流程自己去搭建这样一个CA服务器利用Nginx的服务器上去生成一个证书并且让CA服务器让Nginx生成的这样一个证书正式生效。原创 2024-08-30 18:37:42 · 2422 阅读 · 0 评论 -
Nginx: https解决安全问题
2 )报文的完整性无法验证,可能被黑客篡改。1 )数据使用明文传输,可能被黑客窃取。2.4 CA 证书申请过程中做的事情。1 )http协议存在的问题。1.4 https 加密原理。2.3 数字签名的合法性验证。2 ) https 原理。1.3 关于非对称加密算法。2.2 数字签名的校验流程。2.1 数字签名的生成。1.2 关于对称加密。原创 2024-08-30 12:54:14 · 1165 阅读 · 0 评论 -
Nginx: 第三方清除模块ngx_cache_purge及其相关配置
3.2 Nginx 配置示例 192.168.184.240。3.1 应用服务器, 模拟 192.168.184.20。1 ) ngx_cache_purge 模块功能。2 )ngx_cache_purge 指令。原创 2024-08-30 10:32:47 · 639 阅读 · 0 评论 -
Nginx: 缓存, 不缓存特定内容和缓存失效降低上游压力策略及其配置示例
在负载均衡的过程中,有一个比较重要的概念,就是缓存利用缓存可以很好协调Nginx在客户端和上游服务器之间的速度不匹配的矛盾从而很好的解决整体系统的响应速度如果用户需要通过Nginx获取某一些内容的时候,发起一个request请求这个请求到了Nginx之后,静态内容会直接返回,动态内容会转发至应用程序服务器后端应用服务器再处理完这样一个请求器,会封装响应包体,再返回给我们的NginxNginx 收到 response 包体之后,再一并的把这些内容返回给我们的用户。原创 2024-08-29 17:36:56 · 1787 阅读 · 0 评论 -
Nginx: 负载均衡场景下上游服务器异常时的容错机制
Post请求,它就是一个非幂等的 http 请求方法,因为可能会在后端服务器上创建一些资源。所谓幂等的请求, 是指这个请求发出去之后,无论请求多少次,得到的结果通常是一致的。默认值: proxy_next_upstream error timeout;非幂等请求,可能对服务器造成不可预见的一些错误,在某些场景下是很危险的。2 )proxy_next_upstream_timeout 指令。3 )proxy_next_upstream_tries 指令。1 )proxy_next_upstream 指令。原创 2024-08-28 19:39:24 · 1740 阅读 · 0 评论 -
Nginx: 负载均衡基础配置, 加权轮序, hash算法, ip_hash算法, least_conn算法
其实, ip_hash 指令是为了解决Nginx和后端应用程序服务器的一个 session 保持的。2.1 应用服务器 (使用 nginx 模拟),比如当前ip地址为:192.168.184.20。对于固定的客户端来说,使用ip hash这样一种负载运用算法来进行 session 保持。对应到服务器端的时候,会有 session 信息, 对于不同的用户来说是不同的。它其实对出的一个应用场景,也是对于这种 session 保持的解决而生的。1 ) ip_hash 指令。语法:ip_hash。原创 2024-08-28 17:39:03 · 2286 阅读 · 0 评论 -
Nginx: 代理场景下Nginx更改发往上游应用服务器的请求
5.1 上游应用服务器,这里简化,使用 nginx 来模拟, 假设应用服务器ip: 192.168.184.20。现在,某一个客户端请求中间这个 Nginx代理服务器,假设客户端配置好了本地 hosts。3.2 proxy_pass_request_header 指令。1 ) 一个HTTP请求过来以后,它包含了哪些信息。2.2 proxy_http_version 指令。3.1 proxy_set_header 指令。2 )对请求行信息的更改方法。3 )对请求头的修改指令。4 )对请求包体修改指令。原创 2024-08-28 05:45:00 · 1701 阅读 · 0 评论 -
Nginx: 代理场景下Nginx接收用户请求包体的处理
4.3 请求体大于缓存缓存大小 (这里不能大于 client_max_body_size 的大小)5 ) client_body_in_single_buffer 指令。7 )client_body_in_file_only 指令。6 ) client_body_temp_path 指令。1 )proxy_request_bufering 指令。2 )client_max_body_size 指令。8 )client_body_timeout 指令。配置成 off 的要求。配置成 off 的好处。原创 2024-08-27 19:18:48 · 1195 阅读 · 0 评论 -
Nginx: 反向代理之upstream模块以及完整配置反向代理示例
也就是说在一个时刻内,Nginx到上游服务器的空闲的长连接是16个,所谓空闲的长连接就是这个长连接TCP连接接建立着,但是上面没有请求去发送,但这就是空闲的长连接。所以说我们的keepalive后面跟一个connection的这样一个参数,就定义了Nginx和后端的上游服务器可以开启的长连接的一个空闲长连接的最大数量。启用长连接的情形下的话,有很多的并发请求都调度给某一台上游服务器,上游服务器处理完之后,结果都返回给Nginx了。2 )配置示例 proxy.conf。示例:keepalive 16;原创 2024-08-27 12:33:17 · 2884 阅读 · 0 评论 -
Nginx: 配置项之autoIndex模块与Nginx变量
通过Nginx变量,有助于去定制我们的log文件,可以对各种用户行为,甚至是Nginx的运行的一些性能参数,进行一个更好的一个分析。比如说,Nginx的版本号, 以及Nginx 启动了多个worker子进程的时候,请求被哪个worker子进程处理。这个时候 Nginx 内部也会产生一些相关的变量,这部分变量,叫做Nginx 的内部变量。从一个用户的一个请求处理流程来看,被Nginx处理完成之后,返回给我们的用户。除去上述四个阶段之外,Nginx自身的运行过程中,它也会产生一些相关的变量。原创 2024-08-25 20:29:57 · 2312 阅读 · 0 评论 -
Nginx: 配置项之rewrite模块中的return指令和rewrite指令以及if指令
示例:rewrite /images/(.*.jpg)$ /pic/$1;将images下的jpg文件重写到pic目录下的jpg文件。配置示例 rewrite_if.conf,假设我们的Nginx 主机的ip为: 192.168.184.240。用于对某一些条件进行判断,比如说可以根据某一些变量的值的不同,对 url 进行一个不同的处理。上下文: server 、location、if。上下文:server、location、if。rewrite 指令中的 flag。condition 用法。原创 2024-08-25 05:52:07 · 1271 阅读 · 0 评论 -
Nginx: 配置项之access模块、auth_basic模块、auth_request模块
curl curl http://192.168.184.20:8080/auth.html -I 返回。curl http://192.168.184.20:8080/auth.html 返回结果如下。3 )生成密码文件工具。原创 2024-08-23 20:41:02 · 1347 阅读 · 0 评论 -
Nginx: 配置项之http模块connection和request的用法以及limit_conn和limit_req模块
比如说我们在这儿,至于去引用的limitIQ我们都知道我们的IQ定义status,我们上面是返回的这个五零三,我们在这以示区别,我们让它返回五零四,好吧,继续我们的limitREQ还有什么呀?ok那接下来我们给大家演示一下啊,呃我们还接着上一节的我们这个配置文件,我们直接给大家做展示啊,户下的con零x,还是我们先在这儿去定义我们这个root是吧?第一次没关系,第二次肯定哎,我们在这没有记录进去,我们的这个啊嗯不对,这个时候我们在来给它啊,因为我们在这没定义我们的日志啊,我们再来引用一个日志吧。原创 2024-08-23 19:45:00 · 2181 阅读 · 0 评论 -
Nginx: 配置项之root和alias的区别, 深入理解location, 以及stub_status模块的用法
访问:http://www.nginx-test.com/match_all/match.html 显示 match page。访问:http://www.nginx-test.com/match_all 显示 match_all page。访问:http://www.nginx-test.com/bbs 显示 bbs page。访问:http://www.nginx-test.com/1.jpg 显示 1.jpg。3 ) 理解 location 中的 URL 结尾的反斜线。2 )指令中匹配规则的优先级。原创 2024-08-22 22:32:34 · 1011 阅读 · 0 评论 -
Nginx: 配置项之server_name指令用法梳理
基于域名的虚拟主机,它是通过什么来进行区分不同的虚拟主机呢?可以有多个server模块通过指定不同的server_name来区分不同的那个虚拟主机可以理解成不同的一个网站域名。原创 2024-08-22 15:55:39 · 1806 阅读 · 0 评论 -
Nginx: 配置项之events段核心参数用法梳理
好的,嗯,这就是我们还没启动我们的NDX啊,我来启动一下我们的NGX啊OBDNGX实定下的NGX好,这个时候我们就启动了啊,这个时候我们的NGX就启动了。那好,那我们在我们的ppt中啊,把这个对应的给删掉啊,要不发现不是用在这个events当中了,而是用在我们的man端中了,好删掉。那接下来最后我们比如说我们就打开这样一个啊,比如说motx代表,我们设置成啊啊,它它主要的一些配置,就这几个啊,这五个是吧?哦,那我们就这讲的有问题啊,接下来改一下,我们需要把这个捞翻啊,三个啊放到这里。原创 2024-08-22 12:30:42 · 1201 阅读 · 0 评论 -
Nginx: 配置项之main段核心参数用法梳理
我们了解下配置文件中的一个全局段,有哪些配置参数,包括后面的 events 字段,有哪些配置参数这里面也有一些核心参数, 对于我们Nginx运行的性能也是有很重要的帮助我们现在首先关注整个 main 段的一个核心参数用法所谓 main 段,是指在 nginx.conf 配置文件中,除了有 events 字段,还有 http 段在此两个段之外的一些段,我们都把它称为 main 段,也就是我们的核心段, 如下前面的这些配置信息,并没有包含在某一个段中,它直接写在我们整个配置文件中。原创 2024-08-21 21:15:33 · 1039 阅读 · 0 评论 -
Nginx: 体系化知识点梳理
我们需要对 Nginx 要有体系化的一个认识对 Nginx 自身来说,它是作为一个中间件的,只要是中间件,它必然会涉及到前端和后端对于 Nginx 来说,它是需要协调整个前后端的一个组件那对于中间件来,我们要理解整个外部系统前端和后端是如何进行交互的我们一个用户请求过来以后,是如何被前端处理到后端以后,如何被我们的应用程序处理处理完之后再返回给我们用户的还有就是 Nginx 的部署和调优第一个层次是使用 Nginx 进行一个简单的配置去把它用起来第二个层次是需要深度优化。原创 2024-08-20 20:45:07 · 1495 阅读 · 0 评论