缘起 --转

简介: 其实这两年为 Nginx 世界做了这么多的事情,一直想通过一系列教程性的文章把我的那些工作成果和所学所知都介绍给更多的朋友。现在终于下决心在新浪博客 http://blog.sina.com.cn/openresty 上面用中文写点东西,每一篇东西都会有一个小主题,但次序和组织上就不那么讲究了,毕竟并不是一本完整的图书,或许未来我会将之整理出书也不一定。

 其实这两年为 Nginx 世界做了这么多的事情,一直想通过一系列教程性的文章把我的那些工作成果和所学所知都介绍给更多的朋友。现在终于下决心在新浪博客 http://blog.sina.com.cn/openresty 上面用中文写点东西,每一篇东西都会有一个小主题,但次序和组织上就不那么讲究了,毕竟并不是一本完整的图书,或许未来我会将之整理出书也不一定。

 

    我现在编写的教程是按所谓的“系列”来划分的,比如首先连载的“Nginx 变量漫谈”系列。每一个系列基本上都可以粗略对应到未来出的 Nginx 书中的一“章”(当然内部还会重新组织内容并划分出“节”来)。我面向的读者是各个水平层次的 Nginx 用户,同时也包括未使用过 Nginx 的 Apache、Lighttpd 等服务器的老用户。

 

    我只保证这些教程中的例子至少兼容到 Nginx 0.8.54,别用更老的版本来找我的错处,我一概不管,毕竟眼下最新的稳定版已经是 1.0.10 了。

 

    凡在教程里面提到的模块,都是经过生产环境检验过的。即便是标准模块,如果没有达到生产标准,或者有重要的 bug,我也不会提及。

 

    我在教程中会大量使用非标准的第三方模块,如果你怕麻烦,不愿自己一个一个从网上下载和安装那些个模块,我推荐你下载和安装我维护的 ngx_openresty 这个软件包:

 

    http://openresty.org/

 

    教程里提及的模块,包括足够新的 Nginx 稳定版核心,都包含在了这个软件包中。

 

    我在这些教程中遵循的一个原则是,尽量通过短小精悍的实例来佐证我陈述的原理和观点。我希望帮助读者养成不随便听信别人现成的观点和陈述,而通过自己运行实例来验证的好习惯。这种风格或许也和我在 QA 方面的背景有关。事实上我在写作过程中也经常按我设计的小例子的实际运行结果,不断地对我的理解以及教程的内容进行修正。

 

    对于有问题的代码示例,我们会有意在排版上让它们和其他合法示例所有区别,即在问题示例的每一行代码前添加问号字符,即(?),一个例子是:

    ? server {
    ?     listen 8080;
    ?
    ?     location /bad {
    ?         echo $foo;
    ?     }
    ? }

未经我的同意,请不要随便转载或者以其他方式使用这些教程。因为其中的每一句话,除了特别引用的“名句”,都是我自己的,我保留所有的权利。我不希望读者转载的另一大原因在于:转载后的拷贝版本是死的,我就不能再同步更新了。而我经常会按照读者的反馈,对已发表的老文章进行了大面积的修订。

 

    我欢迎读者多提宝贵意见,特别是建设性的批评意见。类似“太烂了!”这样无聊中伤的意见我看还是算了。

 

    所有这些文章的源都已经放在 GitHub 网站上进行版本控制了:

 

    http://github.com/agentzh/nginx-tutorials/

 

    源文件都在此项目的 zh-cn/ 目录下。我使用了一种自己设计的 Wiki 和 POD 标记语言的混合物来撰写这些文章,就是那些 .tut 文件。欢迎建立分支和提供补丁。

 

    本教程适用于 Kindle、iPad/iPhone、Sony 等电子阅读器的 .mobi.epub 以及 .pdf 等格式的电子书文件可以从下面这个位置下载:

 

    http://openresty.org/#eBooks

 

    章亦春 (agentzh) 于福州家中

 

    2011 年 11 月 30 日

目录
相关文章
|
Linux 文件存储 网络架构
云服务器的frps配置
个人在使用云服务器的简单记录
1111 0
云服务器的frps配置
|
存储 算法 数据挖掘
动态规划Dynamic programming详解-最长公共子序列【python】
动态规划Dynamic programming详解-最长公共子序列【python】
|
Ubuntu
简单几步实现Ubuntu22.04启用Nvidia显卡
本文是关于如何在Ubuntu 22.04操作系统上启用Nvidia显卡的教程,包括禁用旧驱动、添加新驱动源、安装推荐驱动、重启系统以及通过Nvidia设置更改为高性能模式的步骤。
3375 0
简单几步实现Ubuntu22.04启用Nvidia显卡
|
存储 关系型数据库 MySQL
InnoDB中的索引方案
InnoDB中的索引方案
136 0
|
运维 网络协议 Cloud Native
阿里云SDWAN解决方案部署指南
利用阿里云丰富云网络产品,提供完整的SDWAN企业分支互联/企业上云解决方案。本次SDWAN解决方案部署指导场景以解决企业大陆分支机构、亚太IDC及云上VPC构建企业办公组网为例。意在指导客户在项目部署实施阶段可参考本文自助完成业务上线的搭建。本文内容已经对外披露。
1885 1
阿里云SDWAN解决方案部署指南
|
监控 负载均衡 NoSQL
【SpringCloud技术专题】「Gateway网关系列」(1)微服务网关服务的Gateway组件的原理介绍分析
【SpringCloud技术专题】「Gateway网关系列」(1)微服务网关服务的Gateway组件的原理介绍分析
496 0
【SpringCloud技术专题】「Gateway网关系列」(1)微服务网关服务的Gateway组件的原理介绍分析
|
SQL 分布式计算 大数据
MaxCompute(原ODPS)开发入门指南——数据开发工具篇
大家在使用大数据计算服务MaxCompute时,最头疼就是我现在已有的数据如何快速上云?我的日志数据如何采集到MaxCompute上?等等。。。具体详见《MaxCompute(原ODPS)开发入门指南——数据上云篇》。
7834 0
|
移动开发 算法 C++
Stitching模块中focalsFromHomography初步研究
在Stitching模块中,通过“光束法平差”的时候,有一个步骤为“通过单应矩阵估算摄像头焦距”,调用的地方为:   void focalsFromHomography(const Mat& H, double &f0, double &f1, bool &f0_ok, bool &f1_ok){    CV_Assert(H.
1339 0