一、Nginx简介
1.1 常用的web服务器简介
Web服务器也称为www服务器,http服务器,其主要功能时提供网上信息浏览服务。Unix和Linux平台下的常用web服务器有Apache, Nginx(读作'engine x'), Lighttpd, Tomcat, IBMSphere等,其中应用最广泛的是Apache。 而Windows NT/2000/2003平台下最常用的服务器则是微软的IIS(Internet Information Server)。
下图是截止2014年5月世界各地web服务器市场占有率统计图:
在所有网站使用的Web服务器中,Apache的占有率是60.5%。在前100万家网站使用的Web服务器中,Apache的占有率是56.5%。在前1万家网站使用的Web服务器中,Apache的占有率是39.1%,低于Nginx的39.3%的占有率。
1.1.1 Apache 服务器
Apache 仍然是世界上用得最多的 Web 服务器,市场占有率达 60%左右。它源于 NCSAhttpd 服务器,在 NCSA WWW 服务器项目停止后,那些使用 NCSA www 服务器的人们开始交换用于此服务器的补丁,这也是 Apache 名称的由来 (pache补丁)。世界上很多著名的网站都是Apache 的用户,它的优势主要在于源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行 在几乎所有的 Unix 、Windows 、Linux 系统平台上) ,以及其可移植性等。Apache 的模块支持非常丰富,虽在速度、性能上不及其他
轻量级 Web 服务器,他是属于
重量级产品,所消耗的内存 也比其他 Web 服务器要高。
1.1.2 Tomcat服务器
Tomcat 是一个开放源代码、运行 servlet 和 JSPWeb 应用软件的基于 Java 的 Web 应用软件容 器。 Tomcat Server 是根据 servlet 和 JSP 规范执行的,因此也可以说 Tomcat Server 实行了 Apache-J akarta 规范,且比绝大多数商业应用软件服务器要好。但是,
Tomcat 对静态文件、高并发的处理比较弱。
1.2 Nginx 的发展
Nginx ( 读 "engine x" )是俄罗斯人 Igor Sysoev (伊戈尔•塞索耶夫)编写的一款高性能的
HTTP和反向代理服务器。 Nginx选择高效的 epoll ( Linux 2.6 内核)、 kqueue (FreeBSD) 、 eventport (Solaris 10) 作为网络 I/O 模型,在高连接并发的情况下. Nginx 是 Apache 服务器不错的替代品,它能够支持高达到 50,000 个并发连接数的响应,而内存、 CPU 等系统资源消耗却非常低,运行非常稳定。
1.3选择Nginx的理由
1.3.1 他可以高并发连接
官方测试Nginx能够支撑5万并发连接,在实际生产环境中可支撑2-4万并发连接数。这得益于使用了最新的epoll和kqueue网络IO模型,而Apache使用的则是传统的select模型,其比较稳定的Prefork模式为多进程模式,需要经常派生子进程,所消耗的cpu等服务器资源要逼Nginx高得多。
1.3.2 内存消耗少
Nginx+PHP(FastCGI)服务器在3万并发连接下,开启的10个Nginx进程消耗150MB内存(15MB*10),开启的64个php-cgi进程消耗1280MB内存(20MB*64),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi消耗的总内存数才500MB.
同等硬件环境下,Nginx的处理能力相当于Apache的
5-10倍。
1.3.3 成本低廉
购买F5 BIG-IP 、NetScal町等硬件负载均衡交换机需要十多万甚至几十万人民币。而Nginx为开源软件,采用的是 2-clause BSD-like 协议,可以免费使用,并且可用于商业用途。
1.3.4 其他理由
1)配置文件非常简单
网络跟程序一样通俗易懂,即使非专业系统管理员也能看懂。
2)支持 Rewrite 重写规则
能够根据域名、 URL 的不同,将 HTIP 请求分到不同的后端服务器群组。
内置的健康检查功能.如果 Nginx Proxy 后端的某台 Web 服务器宕机了,不会影响前端访问。
3)节省带宽
支持 GZIP 压缩,可以添加浏览器本地缓存的Header头。
4)稳定性高
用于反向代理,宕机的概率微乎其微。
5)支持热部署
Nginx 支持热部署。它的启动特别容易,并且几乎可以 7天 *24 小时不间断地运行,即使运 行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行升级。
2. 安装
Ubuntu下Nginx的安装可以参考(在线安装已验证):
http://www.cnblogs.com/languoliang/archive/2013/04/01/nginx.html
其他操作系统下的安装也都很容易,很方便可以找到安装指南。
2.1 Nginx的启动、停止、平滑重启
在linux下安装好之后,Nginx服务主要的操作就是
启动、停止和平滑重启。
2.1.1 Nginx的启动
启动Nginx,可以执行以下命令。假设Nginx安装在/usr/local/nginx目录中,那么启动Nginx的命令就是:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
参数“-c”指定了配置文件的路径,如果不加此参数,Nginx会
默认加载其安装目录的conf子目录中的nginx.conf文件。在本例中即:/usr/local/nginx/sbin/nginx/conf/nginx.conf。
2.1.2 Nginx的停止
Nginx的停止方法有很多种,一般通过发送系统信号给Nginx主进程的方式来停止Nginx.
我们可以通过ps命令来查找Nginx的主进程号:
ps –ef| grep nginx
会输出:
从上图可以看到,1个Nginx进程的备注信息为“
master process”,表示它为
主进程,另外的4个备注信息为“
worker process”,表示他们为子进程。1021为主进程号。
如果在
nginx.conf配置文件中指定了
pid文件存放的路径(例如: pid /usr/local/webserver/nginx/logs/nginx.pid;),该文件中存放的就是Nginx当前的主进程号。如果没有指定pid文件存放的路径,nginx.pid文件默认存放在Nginx安装目录的logs目录下。所以,我们可以直接通过以下命令来完成停止,省下寻找Nginx主进程号的步骤:
Kill –信号类型 `/usr/local/webserver/nginx/logs/nginx.pid`
(1) 从容停止Nginx
kill –QUIT Nginx主进程号
或
kill –QUIT `/usr/local/webserver/nginx/logs/nginx.pid`
(2)快速停止Nginx
kill -TERM Nginx主进程号
kill -TERM `/usr/local/webserver/nginx/logs/nginx.pid`
或
kill -INT Nginx主进程号
kill -INT `/usr/local/webserver/nginx/logs/nginx.pid`
(3)强制停止所有Nginx进程
kill -9 nginx
2.2 Nginx的平滑重启
如果改变了 Nginx 的配置文件 (nginx.conf),想重启 Nginx. 同样可以通过发送系统信号给Nginx 主进程的方式来进行。不过,重启之前,要确认 Nginx 配置文件( nginx.conf)的语法是正确的,否则 Nginx 将不会加载新的配置文件。
通过以下命令可以判断 Nginx 配置文件是否正确:
/usr/local/webserver/nginx/sbin/nginx -t -c /usr/local/webserver/nginx/conf/ nginx.conf
如果配置文件不正确,屏幕将会提示配置文件的第几行出错:
[emerg]: unknown directive "abc" in /usr/local/webserver/ngin x/conf/nginx.conf:55 configuration file /usr/local/webserver/ngin x/conf/nginx.conf test failed
如果配置文件正确,屏幕将提示以下两行信息:
the configuration file /usr/local/webserver/ngin x/conf/nginx.conf syntax is ok
configuration file /usr/local/webserver/ngin x/conf/nginx.conf test is successful
这时候,就可以平滑重启 Nginx了,使用命令:
kill -HUP Nginx主进程号
或
kill -HUP `cat /usr/local/webserver/nginx/logs/nginx.pid`
当 Nginx 接收到 HUP 信号时,它会尝试先解析配置文件(如果指定配置文件,就使用指定的,否则使用默认的) .如果成功,就应用新的配置文件(例如,重新打开日志文件或监昕的套接字)。之后, Nginx运行新的工作进程并从容关闭旧的工作进程。通知工作进程关闭监听套接字,但是继续为当前连接的客户提供服务。所有客户端的服务完成后,旧的工作进程被关闭。如果新的配置文件应用失败, Nginx将继续使用旧的配置进行工作。
2.3 Nginx的信号控制
在上一节中,我们使用了信号来控制 Nginx 停止、平滑重启, Nginx支持以下几种信号:
•TERM,INT 快速关闭:
• QUIT 从容关闭:
• HUP 平滑重启,重新加载配置文件:
• USRl 重新打开日志文件,在切割日志时用途较大;
• USR2 平滑升级可执行程序:
• WINCH 从容关闭工作进程。
参考资料:
《实战Nginx 取代apache的高性能web服务器》
- 大小: 40.6 KB
- 大小: 147.5 KB
分享到:
相关推荐
<commons-fileupload.version>1.3.1</commons-fileupload.version> <jedis.version>2.7.2</jedis.version> <solrj.version>4.10.3</solrj.version> </properties> <dependencyManagement> <dependencies> <...
**Nginx简介** Nginx 是一款高性能的 Web 和反向代理服务器,以其轻量级、高并发处理能力和稳定性而著称。它被广泛应用于静态文件服务、动态内容代理、负载均衡等领域,是现代互联网架构中的关键组件之一。 **安装...
<title>Nginx 上传进度 Demo</title> <script type="text/javascript" src="/js/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript" src="/js/ajaxfileupload.js"></script> </head> <body> ...
2. **环境搭建**: 安装必要的软件,如Nginx、MySQL等。 3. **上传文件**: 通过FTP客户端将项目文件上传至服务器。 4. **域名绑定**: 为服务器绑定一个域名,便于访问。 5. **安全设置**: 配置防火墙规则,确保服务器...
一、Nginx简介 Nginx以其高效稳定、低内存消耗和强大的并发处理能力而闻名。它采用事件驱动的异步非阻塞模型,使得在高并发场景下表现卓越。Nginx不仅能够作为Web服务器,还能配合其他应用服务器如PHP-FPM进行动态...
一、Nginx简介 Nginx(发音为"engine x")是一款反向代理、负载均衡器以及HTTP缓存服务器,以其事件驱动的架构而著名,能够高效处理大量并发连接。Nginx以其轻量级、稳定性和低内存占用的特点,成为许多网站和应用...
#### 一、Nginx 简介及安装 **Nginx** 是一款广泛使用的高性能 Web 服务器和反向代理服务器,因其出色的稳定性、丰富的功能集、简单的配置文件和低资源消耗而备受青睐。本文将详细介绍如何在 Ubuntu 系统上安装 ...
【Nginx简介】 Nginx 是一款高性能的 Web 和反向代理服务器,以其轻量级、高并发处理能力和稳定性而闻名。它广泛应用于互联网行业,用于提供静态内容服务、反向代理、负载均衡等任务。Nginx 的事件驱动模型和非阻塞...
第1章 Nginx简介.pdf 第2章 Nginx服务器的安装与配置.pdf 第3章 Nginx的基本配置与优化.pdf 第4章 Nginx与PHP(FastCGI)的安装、配置与优化.pdf 第5章 Nginx与JSP、ASP.NET、Perl的安装与配置.pdf 第6章 Nginx HTTP...
#### 一、Nginx简介与应用场景 Nginx(发音为 "engine X")是一款由俄罗斯程序员Igor Sysoev开发的高性能Web服务器和反向代理服务器,同时也可用作IMAP/POP3/SMTP代理服务器。在高并发连接情况下,Nginx作为Apache...
**Nginx简介** Nginx是一款高性能的HTTP和反向代理服务器,也是一款邮件协议代理服务器。它以其稳定性、高并发处理能力以及低内存占用率而受到广泛赞誉。Nginx采用事件驱动的异步非阻塞模型,能够有效处理大量并发...
Name: <input type="text" name="name"><br> Age: <input type="text" name="age"><br> <input type="submit" value="Submit"> </form> </body> </html> ``` 以上内容涵盖了PHP开发的基础知识点,包括环境搭建...
### CentOS安装Nginx详细配置知识点 #### 一、安装准备 在开始部署Nginx之前,需要确保系统中已安装必要的开发工具和依赖库。 ##### 1. 安装GCC - **简介**:GCC (GNU Compiler Collection) 是一个用于编译多种...
#### 一、Nginx简介 Nginx是一款高性能的HTTP和反向代理服务器,同时也是一款IMAP/POP3/SMTP代理服务器。Nginx以其高稳定性、丰富的功能集、简单的配置方式以及低资源消耗而著称,在互联网行业中被广泛应用于负载...
#### 一、Nginx简介 Nginx是一款高性能的HTTP和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP服务。它以其稳定性、丰富的功能集、简单的配置文件和低资源消耗而闻名。Nginx是由Igor Sysoev编写的,其设计目的是...
**Nginx简介** Nginx(发音engine x)是一款高性能的HTTP和反向代理服务器,也是一款电子邮件(IMAP/POP3)代理服务器。它以其稳定、丰富的功能集、简单易用的配置文件和低系统资源消耗而闻名。Nginx由伊戈尔·赛...
1. **Nginx简介** 2. **配置选项解析** 3. **依赖库安装** 4. **编译参数详解** 5. **安全注意事项** #### Nginx简介 Nginx是一款高性能的HTTP服务器和反向代理服务器,它以其稳定性、丰富的功能集、简单的配置...
#### 一、Nginx安装与配置 **1. 下载与解压** - 使用wget工具从官网下载指定版本的Nginx源码包:`wget http://nginx.org/download/nginx-1.6.2.tar.gz` - 解压下载好的文件:`tar-zxvf nginx-1.6.2.tar.gz` **2...
**Nginx简介** Nginx 是一款高性能的 Web 和反向代理服务器,以其轻量级、高并发处理能力和稳定性而闻名。它广泛应用于互联网行业,用于提供静态内容服务、反向代理、负载均衡等任务。Nginx 的工作原理是基于事件...