(最近,部门组织了好几个技术兴趣小组,对当前的热门技术进行研究。我加入了Nginx学习小组,与几个同事一道围绕Nginx来进行研究和学习。从今天起,我会陆陆续续发一系列有关Nginx的学习总结。本文是系列之一:Nginx简介。)

一、Nginx概况
1.Nginx是Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。目前最新的版本是nginx-1.9.0(2015年4月28日发布)。
2.Nginx是一款高性能的HTTP和反向代理服务器,能够支持高达50000个并发连接数的响应,而内存、CPU等系统资源消耗却非常低、运行非常稳定。 3.国内使用Nginx的网站:新浪、网易、腾讯、酷六、水木社区、豆瓣等。
4.Nginx的官网:​​​http://nginx.org/​​。

注:反向代理方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

二、Nginx优势
1.支持高并发连接。
能够支持高达50000个并发连接数的响应。
2.内存消耗少。
在服务器3W并发连接下,开启10个Nginx进程消耗150MB内存。
3.成本低廉。
购买负载均衡交换机需要几十万RMB,而Nginx是开源的。
4.网络配置简单。
5.内置健康检查功能。

总之,Nginx在反向代理、rewrite规则、稳定性、静态文件处理、内存消耗等方面都表现出很强的优势。

三、Nginx下载

登录Nginx的官网(​​http://nginx.org/​​)即可下载最新的代码及编译好的软件版本。登录之后的主界面如图1所示。

Nginx学习总结(1):Nginx简介_配置文件


图1 登录之后的主界面

单击如图1红色圈内的链接,出现如图2所示的软件及源代码下载界面。

Nginx学习总结(1):Nginx简介_配置文件_02


图2 软件及源代码下载界面

其中,编号为1的红色圈内的链接用于下载Nginx的源码,编号为2的红色圈内的链接用于下载已编译好的基于Windows的Nginx可执行程序。四、Nginx运行

将下载下来的基于Windows的Nginx可执行程序解压到D盘,如图3所示。

Nginx学习总结(1):Nginx简介_nginx_03


图3 Nginx可执行程序的解压下面来运行Nginx。运行Nginx有两种方式,一种是直接双击图3中的“nginx.exe”,另一种是采用命令行的方式。我们采用第二种方式。

启动Nginx的命令为:start nginx。

查看Nginx进程的命令为:tasklist /fi “imagename eq nginx.exe”。

这两个命令的运行过程如图4所示。

Nginx学习总结(1):Nginx简介_nginx_04


图4 启动命令及查看命令的运行过程

从图4中,我们可以看到,Nginx启动了两个进程,其中一个是主进程,另一个是工作进程。五、Nginx退出

主要有以下两个命令来退出Nginx:

nginx -s stop (快速退出)

nginx -s quit (优雅退出)

退出Nginx之后,再来查看Nginx进程,就会找不到。退出命令的运行过程如图5所示。

Nginx学习总结(1):Nginx简介_nginx_05


图5 退出命令的运行过程六、Nginx源码工程概览

解压之前下载的源代码包,可以看到Nginx的代码工程布局如图6所示。

Nginx学习总结(1):Nginx简介_nginx_06


图6 Nginx的代码工程布局

在“src”目录下存放的是Nginx的主要源代码,其布局如图7所示。

Nginx学习总结(1):Nginx简介_Nginx_07


图7 Nginx的主要源代码布局七、Nginx配置文件说明

在“conf”目录下存放的是Nginx的主要配置文件,其布局如图8所示。

Nginx学习总结(1):Nginx简介_nginx_08


图8 Nginx的主要配置文件布局其中,“nginx.conf”文件是Nginx的最最主要的配置文件,其包含的内容如图9所示。

Nginx学习总结(1):Nginx简介_Nginx_09


图9 “nginx.conf”文件包含的内容

有关配置文件的使用方法,我们在此打个伏笔,在后面的文章中进行详细的说明。

八、Nginx源码分析工具

要想完全认识Nginx,对其源码进行分析是必做的功课。一般说来,Source Insight是一款较好的分析Nginx的源码的工具。用Source Insight打开Nginx工程代码的示意图如图10所示。

Nginx学习总结(1):Nginx简介_nginx_10


图10 用Source Insight打开Nginx工程代码的示意图

(To be continued…)


本人微信公众号:zhouzxi,