《深入理解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)日志文件存放目录