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

(最近,部门组织了好几个技术兴趣小组,对当前的热门技术进行研究。我加入了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的网站:新浪、网易、腾讯、CSDN、酷六、水木社区、豆瓣等。
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 登录之后的主界面
单击如图1红色圈内的链接,出现如图2所示的软件及源代码下载界面。
Nginx学习总结(1):Nginx简介_第2张图片
图2 软件及源代码下载界面
其中,编号为1的红色圈内的链接用于下载Nginx的源码,编号为2的红色圈内的链接用于下载已编译好的基于Windows的Nginx可执行程序。

四、Nginx运行
将下载下来的基于Windows的Nginx可执行程序解压到D盘,如图3所示。
Nginx学习总结(1):Nginx简介_第3张图片
图3 Nginx可执行程序的解压

下面来运行Nginx。运行Nginx有两种方式,一种是直接双击图3中的“nginx.exe”,另一种是采用命令行的方式。我们采用第二种方式。
启动Nginx的命令为:start nginx。
查看Nginx进程的命令为:tasklist /fi “imagename eq nginx.exe”。
这两个命令的运行过程如图4所示。
Nginx学习总结(1):Nginx简介_第4张图片
图4 启动命令及查看命令的运行过程
从图4中,我们可以看到,Nginx启动了两个进程,其中一个是主进程,另一个是工作进程。

五、Nginx退出
主要有以下两个命令来退出Nginx:
nginx -s stop (快速退出)
nginx -s quit (优雅退出)
退出Nginx之后,再来查看Nginx进程,就会找不到。退出命令的运行过程如图5所示。
Nginx学习总结(1):Nginx简介_第5张图片
图5 退出命令的运行过程

六、Nginx源码工程概览
解压之前下载的源代码包,可以看到Nginx的代码工程布局如图6所示。
Nginx学习总结(1):Nginx简介_第6张图片
图6 Nginx的代码工程布局
在“src”目录下存放的是Nginx的主要源代码,其布局如图7所示。
Nginx学习总结(1):Nginx简介_第7张图片
图7 Nginx的主要源代码布局

七、Nginx配置文件说明
在“conf”目录下存放的是Nginx的主要配置文件,其布局如图8所示。
Nginx学习总结(1):Nginx简介_第8张图片
图8 Nginx的主要配置文件布局

其中,“nginx.conf”文件是Nginx的最最主要的配置文件,其包含的内容如图9所示。
Nginx学习总结(1):Nginx简介_第9张图片
图9 “nginx.conf”文件包含的内容

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

八、Nginx源码分析工具
要想完全认识Nginx,对其源码进行分析是必做的功课。一般说来,Source Insight是一款较好的分析Nginx的源码的工具。用Source Insight打开Nginx工程代码的示意图如图10所示。
Nginx学习总结(1):Nginx简介_第10张图片
图10 用Source Insight打开Nginx工程代码的示意图

(To be continued…)


本人微信公众号:zhouzxi,请扫描以下二维码:
Nginx学习总结(1):Nginx简介_第11张图片

你可能感兴趣的:(计算机网络)