坚实的幻想

ON A CLEAR DISK YOU CAN SEEK FOREVER

OpenSSL SAN 证书

使用 OpenSSL 制作一个包含 SAN(Subject Alternative Name)的证书

什么是 SAN SAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析。 先来看一看 Google 是怎样使用 SAN 证书的,下面是 Youtube 网站的证书信息: 这里可以看到这张证书的 Common Name 字段是 *....

Nginx 配置详解

Nginx intro

Nginx(engine X) 是一个高性能的 HTTP 服务器和反向代理服务器,这款软件开发的目的是为了解决 C10k 问题。 Nginx 的架构利用了许多现代操作系统的特性,以实现一个高性能的 HTTP 服务器。例如在 Linux 系统上,Nginx 使用了 epoll,sendfile,File AIO,DIRECTIO 等机制,使得 Nginx 不仅性能高效,而且资源占用率非常低,...

HAProxy 反向代理的使用

High availability

HAProxy 是一款高性能的反向代理软件,它可以基于四层或七层进行反向代理,尤其适合于高负载且需要进行七层处理的 Web 站点。 HAProxy 主要有 1.5,1.4 和 1.3 三个版本。CentOS 6 的 EPEL 源中已经加入了 HAProxy 的 RPM 包,因此安装 HAProxy 直接使用 yum 安装即可。 相较与 Nginx,HAProxy 更专注与反向代理,因此它...

负载均衡集群 LVS 详解

Loadbalancer & LVS

当服务器遇到性能瓶颈需要进行扩展时,一般来说有两种解决思路:Scale-up 和 Scale out,也称作垂直扩展和水平扩展。 垂直扩展 通常指增加 CPU 和内存,购买昂贵的高性能服务器 优点: 耗电量相比使用多台服务器要少 实施简单 缺点 价格太昂贵 由于资源的争用,服务器性能的增长会越来越小 有很大的硬件故障导致服务不可用的风险 受限制于供应...

高可用集群基本概念

High availability

什么是高可用 可用性如何定义 可用性(availability)是关于系统可供使用时间的表述,以不可用的时间为衡量指标。不可用时间越短,可用性越高。通常用 n 个 9 来描述。比如 4 个 9 的可用性(99.99%),是指一年中不可用时间在 52 分钟内,平均每周不可用时间在 1 分钟。 可靠性(reliability)是关于系统无故障时间间隔的描述,以发生故障的次数为衡量指...

用 awk 实现一个关系型数据库

AWK & relational DB

awk 的祖师爷 Brian W. Kernighan,写过一本 《The AWK Programming Language》,这本书一如 Brian W. Kernighan 的其他书,简明扼要却不乏深入。更厉害的是这本书在淘宝上的售价居然高达 1000 多。 书中用 awk + 纯文本数据模拟了一个微型的关系型数据库外加一个数据库查询语言编译器,看完真让我感觉脑洞大开。 本文将整个过...

Linux 防火墙和 iptables

Netfilter & iptables

Netfilter 与 iptables 的关系 Linux 系统在内核中提供了对报文数据包过滤和修改的官方项目名为 Netfilter,它指的是 Linux 内核中的一个框架,它可以用于在不同阶段将某些钩子函数(hook)作用域网络协议栈。Netfilter 本身并不对数据包进行过滤,它只是允许可以过滤数据包或修改数据包的函数挂接到内核网络协议栈中的适当位置。这些函数是可以自定义的。 ...

文件共享服务 FTP,NFS 和 Samba

Linux 系统中,存储设主要有下面几种: DAS DAS 指 Direct Attached Storage,即直连附加存储,这种设备直接连接到计算机主板总线上,计算机将其识别为一个块设备,例如常见的硬盘,U 盘等,这种设备很难做到共享。 NAS NAS 指 Network Area Storage,它一般是将本地的存储空间共享给其他主机使用,一般通过 C/S 架构实现通信。它实现...

计算机原理 —— 计算机是如何启动的

How computer booted

这是来自于 Gustavo Duarte 博客的一系列的计算机内部原理的科普文章,本人出于兴趣翻译过来。原文:How Computers Boot Up 上一篇文章讲了 Intel 系统的主板与内存映射。计算机启动是一个复杂的,充满黑科技的(原文是 hacky),多阶段的过程。这里是整个过程的概要图: 当你按下电源键的那一刻,计算机的的启动就开始了。当主板启动后,它开始初始化...

计算机原理 —— 主板与内存映射

Motherboard and memory map

这是来自于 Gustavo Duarte 博客的一系列的计算机内部原理的科普文章,本人出于兴趣翻译过来。原文:Motherboard Chipsets and the Memory Map 我打算写几篇关于计算机内部原理的文章,来帮助解释现代操作系统内核是如何工作的。我希望这些文章能对那些对这部分内容感兴趣但又没有相关经验的爱好者和程序员们有所帮助。文章主要关注 Linux,Win...