运维笔记

TL; DR:对软链进行 sed 请使用 sed -i --follow-symlinks ,否则软链会变成常规文件。

本来我已经很久不拿这种非常零散的点水一篇文章了但是由于这个坑我觉得无比愚蠢我决定上来吐槽一下

你们 Debian 特色的 nginx 配置文件分为 sites-available 和 sites-enabled,某次我对着 sites-enabled 来了一次 sed -i 之后又愉快的改配置文件然而 reload 谜之不生效,然后就发现软链都变常规文件了。

原因大致是 sed 会在内存里完成[……]

Read more

试玩 nginx mainline 1.13 的 TLSv1.3

大晚上的刷推发现 nginx 出了新的大版本更新(https://twitter.com/nginxorg/status/856896480497385473),一看 TLSv1.3 support,顿时吓清醒了,为啥这么厉害的特性官方博客都没一篇说明的(关于 TLS 1.3 的介绍建议阅读微信的 基于TLS1.3的微信安全通信协议mmtls介绍),后来发现原来1.11.x 的时候就偷偷加入的支持然而没有告诉你,我也是十分的无语。仔细看了一下 ngx_http_ssl_module 的文档:

The TLSv1.3 parameter (1.13.0) works only when Ope[……]

Read more

目录

  1. 什么是 Websocket
  2. 为什么使用 Websocket
  3. 性能理论分析
  4. Websocket 服务端和反代实践
  5. 对反代性能进行测试
  6. Websocket 和 HTTP

什么是 Websocket

Websocket 是起初由 HTML5 定义的一个建立在单 TCP 连接上的全双工通信协议,后从 HTML5 规范独立并由 RFC 6445 标准化,但仍被习惯性地称为 HTML5 Websocket。

Websocket 工作在 HTTP 的80和443端口并使用前缀 ws://或者[[……]

Read more

在 Nginx 中,四层的数据被称为 stream,和四层代理有关的模块主要有:

  • ngx_stream_core_module:四层代理的基本功能模块
  • ngx_stream_upstream_module:四层代理转发到上游的模块
  • ngx_stream_proxy_module:四层代理相关配置

其他 stream 相关模块用于如 SSL 支持、geoip 支持、简单访问控制支持等,本次测试并没有使用到。

使用的注意事项

Nginx 的四层反代功能较为简单,其访问控制模块因为源站 IP 可以进行伪造,[……]

Read more

浅谈 DNS 的解析

DNS 这个东西大概是个网民就听过,然而大部分人对它的观念停留在“能上 QQ 上不了网站就改 DNS 试试”的程度上,DNS 系统的结构和基本的查询流程是非常经典的程序员面试题,实际上我也被问到过,听说 SA 入职培训还有 DNS 相关课程的时候我还很吃惊这有什么好培训的,然后没几天自己就踩了 DNS 的坑,发现这里面能谈的东西还是不少而且我自己很多概念也并不是很清楚

DNS 的全程是 domain name service,关于域名系统和 DNS 出现的缘由不在此细讲,首先来说说什么是域(domain)和域名(domain name),这些内容定义在 RFC1034 和 RFC103[……]

Read more