《深入理解Nginx:模块开发与架构解析》,一

第1章 研究 Nginx 前的准备工作

1.1 Nginx 是什么

Web 服务器的基本功能:基于 REST 架构风格,以统一资源描述符(URI)或者统一资源定位符(URL),作为沟通依据,通过 HTTP 为浏览器等客户端程序提供各种网络服务。

Nginx 是一个跨平台的 Web 服务器,可运行在 Linux、FreeBSD、Solaris、AIX、Mac OS、Windows 等操作系统上,并且使用当前操作系统特有的 API 来提高自己的性能。

1.2 为什么选择 Nginx

(1)更快:对请求的响应更快

(2)高扩展性:由多个不同功能、不同层次、不同类型且耦合度极低的模块组成

(3)高可靠性

(4)低内存消耗

(5)单机支持10万以上的并发连接

(6)热部署:master管理进程与worker工作进程分离设计

(7)最自由的 BSD 协议

Nginx 先天的事件驱动型设计,全异步的网络 I/O 处理机制,极少的进程间切换以及许多优化设计,都使得 Nginx 天生善于处理高并发压力下的互联网请求,同时 Nginx 降低了资源消耗,可以把服务器硬件资源使用到极致。

1.3 准备工作

1.3.1 Linux操作系统

为了支持 epoll,需要一个内核为Linux2.6及以上版本的操作系统。

1.3.2 使用Nginx的必备软件

(1)GCC编译器:用来编译C语言程序

(2)PCRE库:用来支持正则表达式

(3)zlib库:用于对HTTP包的内容做gzip格式的压缩

(4)OpenSSL开发库:用来在更安全的SSL协议上传输HTTP

1.3.3 磁盘目录

(1)Nginx源代码存放目录

(2)Nginx编译阶段产生的中间文件存放目录:默认情况下,configure命令会将该目录命名为obj,并放在Nginx源代码目录下

(3)部署目录:默认为 /usr/local/nginx

(4)日志文件存放目录