Nginx是什么
人们在了解新事物时,往往习惯通过类比来帮助自己理解事物的概貌。那么,我们在学习Nginx时也采用同样的方式,先来看看Nginx的竞争对手—Apache、Lighttpd、Tomcat、Jetty、IIS,它们都是Web服务器,或者叫做WWW(World Wide Web)服务器,相应地也都具备Web服务器的基本功能:基于REST架构风格,以统一资源描述符(Uniform Resource Identifier,URI)或者统一资源定位符(Uniform Resource Locator,URL)作为沟通依据,通过HTTP为浏览器等客户端程序提供各种网络服务。然而,由于这些Web服务器在设计阶段就受到许多局限,例如当时的互联网用户规模、网络带宽、产品特点等局限,并且各自的定位与发展方向都不尽相同,使得每一款Web服务器的特点与应用场合都很鲜明。
Tomcat和Jetty面向Java语言,先天就是重量级的Web服务器,它的性能与Nginx没有可比性,这里略过。
IIS只能在Windows操作系统上运行。Windows作为服务器在稳定性与其他一些性能上都不如类UNIX操作系统,因此,在需要高性能Web服务器的场合下,IIS可能会被“冷落”。
Apache的发展时期很长,而且是目前毫无争议的世界第一大Web服务器,图1-1中是12年来(2010~2012年)世界Web服务器的使用排名情况。
从图1-1中可以看出,Apache目前处于领先地位。
Apache有许多优点,如稳定、开源、跨平台等,但它出现的时间太长了,在它兴起的年代,互联网的产业规模远远比不上今天,所以它被设计成了一个重量级的、不支持高并发的Web服务器。在Apache服务器上,如果有数以万计的并发HTTP请求同时访问,就会导致服务器上消耗大量内存,操作系统内核对成百上千的Apache进程做进程间切换也会消耗大量CPU资源,并导致HTTP请求的平均响应速度降低,这些都决定了Apache不可能成为高性能Web服务器,这也促使了Lighttpd和Nginx的出现。观察图1-1中Nginx成长的曲线,体会一下Nginx抢占市场时的“咄咄逼人”吧。
Lighttpd和Nginx一样,都是轻量级、高性能的Web服务器,欧美的业界开发者比较钟爱Lighttpd,而国内的公司更青睐Nginx,Lighttpd使用得比较少。
在了解了Nginx的竞争对手之后,相信大家对Nginx也有了直观感受,下面让我们来正式地认识一下Nginx吧。
提示 Nginx发音:engine [‘nd3In] X。
来自俄罗斯的Igor Sysoev在为Rambler Media(http://www.rambler.ru/)工作期间,使用C语言开发了Nginx。Nginx作为Web服务器,一直为俄罗斯著名的门户网站Rambler Media提供着出色、稳定的服务。
Igor Sysoev将Nginx的代码开源,并且赋予其最自由的2-clause BSD-like license许可证。由于Nginx使用基于事件驱动的架构能够并发处理百万级别的TCP连接,高度模块化的设计和自由的许可证使得扩展Nginx功能的第三方模块层出不穷,而且优秀的设计带来了极佳的稳定性,因此其作为Web服务器被广泛应用到大流量的网站上,包括腾讯、新浪、网易、淘宝等访问量巨大的网站。
2012年2月和3月Netcraft对Web服务器的调查如表1-1所示,可以看出,Nginx的市场份额越来越大。
表1-1 Netcraft对于Web服务器市场占有率前4位软件的调查(2012年2月和3月)
Nginx是一个跨平台的Web服务器,可运行在Linux、FreeBSD、Solaris、AIX、Mac OS、Windows等操作系统上,并且它还可以使用当前操作系统特有的一些高效API来提高自己的性能。
例如,对于高效处理大规模并发连接,它支持Linux上的epoll(epoll是Linux上处理大并发网络连接的利器,9.6.1节中将会详细说明epoll的工作原理)、Solaris上的event ports和FreeBSD上的kqueue等。
又如,对于Linux,Nginx支持其独有的 sendfile系统调用,这个系统调用可以高效地把硬盘中的数据发送到网络上(不需要先把硬盘数据复制到用户态内存上再发送),这极大地减少了内核态与用户态数据间的复制动作。
种种迹象都表明,Nginx以性能为王。
2011年7月,Nginx正式成立公司,由Igor Sysoev担任CTO,立足于提供商业级的Web服务器。
具体操作请往下看:
(一)
1.下载 pcre-8.10.tar.gz
下载地址:
http://exim.mirror.fr/pcre/pcre-8.10.tar.gz
2.下载 nginx-1.1.1.tar.gz
下载地址:
http://mirrors.sohu.com/nginx/nginx-1.1.1.tar.gz
(二)
安装 pcre 让nginx支持rewrite
1.pcre-8.10.tar.gz 上传到/home 目录下面
2. 解压 pcre
cd /home
tar zxvf pcre-8.10.tar.gz 解压 pcre 后 /home 下面会有 pcre-8.10 文件夹
3.配置pcre
cd /home/ pcre-8.10
./configure 输入该命令后屏幕会生成一堆文件,不用去管它
4.make
在linux 中输入 make 命令后屏幕会生成一堆文件,不用去管它
5.安装
在linux 中输入 make install
(三)
接下来就是安装 nginx.
1.nginx-1.1.1.tar.gz 上传到/home 目录下面
2.解压 nginx
cd /home
tar zxvf nginx-1.1.1.tar.gz 解压 nginx 后 /home 下面会有nginx-1.1.1 文件夹
3.配置nginx
cd nginx-1.1.1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
4.make
在linux 中输入 make 命令后屏幕会生成一堆文件,不用去管它
5.安装
在linux 中输入 make install
(四)
1.检查是否安装成功
cd /usr/local/nginx/sbin
./nginx -t
结果显示:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
结果是这样就表示安装成功了!!!
(五)
启动nginx
cd /usr/local/nginx/sbin 目录下面 输入 ./nginx 启动 nginx
(六)
检查是否启动成功
ie 浏览器中输入 http://ip
看到上面nginx 欢迎界面说明启动成功
说明nginx 默认配置端口是80.配置文件主要是conf 文件夹中的nginx.conf 文件
(七)停止nginx
pkill -9 nginx
本文出自 “周氏一族” 博客,谢绝转载!
本文出自 “周氏一族” 博客,谢绝转载!
原文:http://zhoushouby.blog.51cto.com/9150272/1530152