奇妙的 Linux 世界

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

一份超实用的 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......

为什么只有 13 台根服务器

网上很多人都说 DNS 根服务器只有 13 台,中国一台也没有。在网络世界,中国被美国卡住了脖子。那 DNS 根服务器真的只有 13 台吗?如果是,那原因又是什么?今天就给大家说道说道。 DNS 基本概念 在回答这个问题之前,我们需要先回顾一些基本概念。DNS 是一种分层结构,这种层级就体现在域名的『点』里。以我的域名为例,TAOSHU.IN 它的完整域名其实是 TAOSHU.IN.。注意最......

如何利用谷歌邮箱别名功能获取无限 Gmail 邮箱

我们注册有些国外的服务时,是不能用国内邮箱注册的,这时一个 Gmail 邮箱就显得很有必要。而有时候我们会需要注册多个账号,当然你可以用多个 Gmail 邮箱来注册。 但多个 Gmail 邮箱又不好管理,而且现在 Gmail 邮箱也不是那么好注册了,这时你就会需要下面我要介绍的内容了,利用 Gmail 邮箱的别名功能来实现同一邮箱获取无限多个 Gmail 邮箱号。 在这之前你需要有一个谷歌账......

如何使用 zSwap 提高系统性能

使用 zSWAP、zstd 和 z3fold 来提高操作系统的性能 压缩可以降低占用空间,顾名思义,内存压缩就是压缩内存,节省内存空间。就目前的技术而言, I/O 的速度远远慢于这 RAM 操作速度。因此,如果频繁地做 I/O 操作,不仅影响 flash 使用寿命,还严重影响系统性能。内存压缩是一种让 I/O 过程平滑过渡的做法, 即尽量减少由于内存紧张导致的 I/O,提升性能。 介......

如何在 sudo 提权后使用别名命令

一般来说,sudo会忽略通过.bashrc文件、.bash_aliases文件或者alias命令设置的别名命令(aliased commands)。 比如,我们经常将ll用作ls -lh命令的别名。然后,我们输入ll,终端将会返回一个关于当前目录的长列表。但是,当我们输入sudo ll时,终端将会返回: 12$ sudo ll=> sudo: ll: command not......