http2的变化和原理
1. http2介绍
HTTP/2 出来的目的是为了改善 HTTP 的性能。协议升级有一个很重要的地方,就是要兼容老版本的协议,否则新协议推广起来就相当困难,所幸 HTTP/2 做到了兼容 HTTP/1.1 。那么,HTTP/2 是怎么做的呢?
第一点,HTTP/2 没有在 URI 里引入新的协议名,仍然用「http://」表示明文协议,用「https://」表示加密协议,于是只需要浏览器和服务器在背后自动升级协议,这样可以让用户意识不到协议的升级,很好的实现了协议的平滑升级。
第二点,只在应用层做了改变,还是基于 TCP 协议传输,应用层方面为了保持功能上的兼容,HTTP/2 把 HTTP 分解成了「语义」和「语法」两个部分,「语义」层不做改动,与 HTTP/1.1 完全一致,比如请求方法、状态码、头字段等规则保留不变。
但是,HTTP/2 在「语法」层面做了很多改造,基本改变了 HTTP 报文的传输格式。
nginx常用模块和配置实战
Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。
零. 前言
0.1 配置文件在哪
安装好nginx我们首先要知道配置文件在哪里?

说明nginx的主配置文件都在 /etc/nginx/nginx.conf里. 打开文件我们还可以看到
1 | include /etc/nginx/conf.d/*.conf; |
需要添加新配置选项的地方位于 sites-enabled 文件夹。如果你打开这个文件夹,你会发现一个名为 default 的文档,打开后你就会找到nginx的配置选项, 当你安装好nginx默认看到的首页就是在这里配置的.
在该目录下还有一个 sites-available 的文件夹, 这个文件夹一般在你需要建立和管理多个站点的时候非常有用,可以帮助你更好的组织不同的项目。你需要在这里添加你的nginx配置文案并将他们链接至 sites-enabled 目录下。
只有在 sites-enabled 目录下的配置文件才能够真正被用户访问。但是你同样可以将文件放在 sites-available 目录下用来存档或者生成链接。
hugo博客自动化部署到github和云服务器上
新的博客系统准备使用hugo, 更想专注于写, 而不是写完每次都敲命令部署, 接下来搞下自动化部署.
另外blog要实现国内外分流进行加速, 国外去访问github page, 国内访问cdn, 或者自己的云服务器上(双十一撸的一直在吃灰)
filebeat输出到kafka
awk的使用
AWK 是一种处理文本文件的编程语言,是一个强大的文本分析工具。之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。
grep 、sed、awk 被称为 linux 中的”三剑客”。grep 更适合单纯的查找或匹配文本, sed 更适合编辑匹配到的文本, awk 更适合格式化文本,对文本进行较复杂格式处理。
tcp原理和三次握手四次挥手
TCP 的全称叫传输控制协议(Transmission Control Protocol),TCP 相比 UDP 多了很多特性,比如流量控制、超时重传、拥塞控制等,这些都是为了保证数据包能可靠地传输给对方。当传输层的数据包大小超过 MSS(TCP 最大报文段长度) ,就要将数据包分块,我们把每个分块称为一个 TCP 段(TCP Segment)。
网络层最常使用的是 IP 协议(Internet Protocol),IP 协议会将传输层的报文作为数据部分,再加上 IP 包头组装成 IP 报文,如果 IP 报文大小超过 MTU(以太网中一般为 1500 字节)就会再次进行分片,得到一个即将发送到网络的 IP 报文。

网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。

Kafka 安装与 Go 实战
1. 安装与部署
Kafka 3.x 支持 KRaft 模式,无需依赖 ZooKeeper。以下配置基于 Docker Compose:
1 | services: |

