奇妙的 Linux 世界

种一棵树最好的时间是十年前,其次是现在。

简单一招,轻松把 Nginx 服务器性能提升 50 倍

用 Nginx Gzip 进行静态加速 这绝对是你应该做的事情。 并不是特别麻烦,而且效果也很突出。 这里解释了 Nginx 中的 gzip_static。 1.不使用 gzip static 时的 gzip 处理 如果你不使用 gzip_static 而只是 “gzip on”,它每次都会被压缩并发送。 虽然它实际上可能缓存在内存中,但传统观点是 “每次都会执行压缩处理,因此 CPU 负......

史上最全 SSH 暗黑技巧详解

我见过太多的老鸟、新手对 SSH 基本只限于 SSH 到远程机器,实际这个命令我们一天要用很多次,但是对它的了解太少了,他的强大远远超出你的想象。当于你也许会说够用就够了,确实没错,但是你考虑过效率没有,或者还有哪些脑洞大开的功能会让你爱死他,这些功能又仅仅是一行命令就够了。 疫情期间一行 SSH 命令让我节省了 70% 的出差时间,来,让我们一起走一遍,看看会不会让你大开眼界。 本文试图......

国内外公共/加密 DNS 服务器列表

国内外公共 DNS,加密 DNS 汇总,可用作各种 DNS 服务器的上游服务器,在下面的列表中 选择 2-3 个为宜。选得多并不是最优解,望周知。 作为上游服务器列表时,因为 UDP 传输时间短,公共 DNS 统一选择 udp,而加密 DNS 统一选择:https,当然tls也可以。 国内 DNS 列表: 1. 国内公共 DNS 列表 阿里公共 DNS: 12223.5.5.5223.6.6......

一篇超级实用的裁员劳动仲裁指南

其实本来另一篇文章已经写好了,但考虑到临近年底,劳动仲裁指南的实用性可能会更大,于是便有了这篇文章。作为劳动仲裁曾经的亲历者,reizhi 希望能够借这篇文章把劳动仲裁这件事给说明白。虽然希望各位都用不上,但多了解一些总是好的。 在劳动合同签立的过程中,用人单位往往处于极其强势的地位。对应的,劳动者毫无疑问属于弱势的一方。在双方就劳动合同的履行产生争议时,依靠友好协商有时并不能达成让人满意的......

一份超实用的 Nginx Location 配置详解

前言 Location 是 Nginx 中一个非常核心的配置,这篇重点讲解一下 Location 的配置问题以及一些注意事项。 语法 关于 Location,举个简单的配置例子: 12345678910http { server { listen 80; server_name www.yayujs.com; location /......

一文带你搞懂旁路由的原理与配置

最早听到旁路由这个词是在 2020 年折腾 N1 的时候,这台单网口的小盒子只能用网上所说的旁路由方案接入局域网来实现期望的功能。现在回想起来,旁路由这个词有可能就是在那个发烧友大量折腾斐讯 N1/P1/T1 的时期被发明出来的。 你没办法在发烧友圈子外的互联网及各种学术材料中找到对旁路由的描述和定义,当然也找不到合适的英文翻译(导致这篇文章的 slug 定义困难);从拓扑上看,旁路由更像是......

SRE 生产环境上线操作指南

我们每天要进行大量的线上变更操作。怎么保证这些操作安全,不会导致故障,是我每天都在思考的问题。 这篇文章从工作经历总结一些原则和想法,希望能有帮助。 线上操作有几点基本的要求: 操作需要是可以灰度的 (Canary):即能够在一小部分范围内生效,如果没有问题,可以继续操作更多的部分; 操作必须是可以验证和监控的:要知道自己操作的结果,是否符合预期; 操作必须是可以回滚的:如果发现自己的操作......

一文带你搞懂公网、私网、内网、外网的区别

最近经常有很多小白朋友在后台问,公网、私网、内网、外网,这些的概念是啥样的,又该怎么去界定。 关于 IP 地址,确实没有太明确的区分,其实也不必太过咬文嚼字。 内网、外网就是一个参考系选择的结果。 毕竟对你而言是外网,其实是别人的内网,,各有各的定义,最多只能具体问题具体分析。 不过在一般情况下,还是可以区分的。 内、外网是相对于防火墙而言的,在防火墙内部叫做内网,反之就是外网。 所以在一定......

Nginx 是如何解决惊群效应的?

前置知识 linux 网络处理的基本方法:bind listen accept epoll 的基本方法:epoll_create epoll_ctl epoll_wait 什么是惊群效应? 第一次听到的这个名词的时候觉得很是有趣,不知道是个什么意思,总觉得又是奇怪的中文翻译导致的。 复杂的说(来源于网络)TLDR; 惊群效应(thundering herd)是指多进程(多线程)在同时阻......

作为一名软件工程师,我在 20 年职业生涯中学到的事情

(1)优秀的软件工程师不仅编写代码,还会考虑谁将使用它、为什么使用它、如何使用它。牢记用户需求才能创造良好的用户体验。 (2)水平再高的程序员,也会在自己擅长的领域犯错,如果遇到复杂的问题,就更是如此了。始终牢记,最好的代码是没有代码,或者不需要维护的代码。 (3)任何软件工程师的主要工作都是交付价值。软件只是达到目的的手段。 (4)警惕那些很长时间没有编写任何代码、却在设计系统的人。 (5......