`
足至迹留
  • 浏览: 486120 次
  • 性别: Icon_minigender_1
  • 来自: OnePiece
社区版块
存档分类
最新评论

<1>Nginx简介及安装

阅读更多
一、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
1
1
分享到:
评论
4 楼 足至迹留 2014-11-24  
string2020 写道
现在的问题是:
如何在nginx里面判断地区(如何在nginx里面判断地区是广州、深圳)

没有实际操作过,参考下这个吧:http://www.ttlsa.com/linux/nginx-modules-geoip_module/
3 楼 string2020 2014-11-21  
现在的问题是:
如何在nginx里面判断地区(如何在nginx里面判断地区是广州、深圳)
2 楼 足至迹留 2014-11-21  
string2020 写道
请问楼主一个场景,看看nginx能否实现

当访问 http://pc.example.com/payment/alipay.do
的时候,
如果是手机访问,且IP地址是广州或者深圳的
就重定向到
http://mobile.example.com/payment.alipay.do
否则,就不做处理(还是显示原来的页面)

应该是能实现的,使用$http_user_agent来判断终端类型,然后if指令不支持嵌套,就多设置几个变量,每个变量代表你一个判断条件,组合起来满足你的条件的时候使用rewrite指令跳转。可以参考下:http://www.centoscn.com/nginx/2014/0602/3065.html  http://www.centoscn.com/nginx/2014/0602/3065.html
1 楼 string2020 2014-11-20  
请问楼主一个场景,看看nginx能否实现

当访问 http://pc.example.com/payment/alipay.do
的时候,
如果是手机访问,且IP地址是广州或者深圳的
就重定向到
http://mobile.example.com/payment.alipay.do
否则,就不做处理(还是显示原来的页面)

相关推荐

    t淘淘商城项目 商城项目 视频和源码教程 详细

    &lt;commons-fileupload.version&gt;1.3.1&lt;/commons-fileupload.version&gt; &lt;jedis.version&gt;2.7.2&lt;/jedis.version&gt; &lt;solrj.version&gt;4.10.3&lt;/solrj.version&gt; &lt;/properties&gt; &lt;dependencyManagement&gt; &lt;dependencies&gt; &lt;...

    Nginx服务器的安装与配置.pdf

    第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安装包

    1.redis简介及下载安装 作为这次的主角,相信大家对redis应该都一定印象,redis是一款开源的高性能key-value数据库,拥有丰富的键值储存类型,并提供多种语言的API。 与一般数据库不同,redis是使用内存作为主存,而...

    Nginx全套学习指南

    第1章 Nginx简介 第2章 Nginx服务器的安装与配置 第3章 Nginx的基本配置与优化 第4章 Nginx与PHP(FastCGI)的安装、配置与优化 第5章 Nginx与JSP、ASP.NET、Perl的安装与配置 第6章 Nginx HTTP负载均衡和反向代理的...

    nginx for windows下载安装与配置

    (1)nginx的特性和简介 (2)nginx for windows的下载与安装 (3)nginx处理静态资源的配置 (4)nginx 反向代理设置 (5)nginx 常见错误 引言:为什么要使用nginx 目前很多大型网站都使用了nginx,新浪、网易、QQ等都使用...

    实战nginx.pdf

    主要内容包括:第1章 Nginx简介;第2章Nginx服务器安装与配置;第3章Nginx基本配置与优化;第4章Nginx与PHP;第5章Nginx与JSP、ASP.NET..第6章Nginx http负载均衡和反向代理;第7章Nginx 的rewrite规则与实例;第8章...

    nginx实战-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-配置指南 2018

    第1章 Nginx简介 第2章 Nginx服务器的安装与配置 第3章 Nginx的基本配置与优化 第4章 Nginx与PHP(FastCGI)的安装、配置与优化 第5章 Nginx与JSP、ASP.NET、Perl的安装与配置 第6章 Nginx HTTP负载均衡和反向代理的...

    实战nginx-张宴

    第1章 Nginx简介 1.1 常用的Web服务器简介 1.2 Nginx的发展 1.3 选择Nginx的理由 1.4 Nginx与Apache、 Lighttpd的综合对比 第2章 Nginx服务器的安装与配置 2.1 安装Nginx服务器所需要的系统资源 2.2 Nginx的下载 2.3...

    nginx搭建配置详细说明

    1. Nginx简介 1.1. 什么是nginx 1.2. Nginx的优点 1.3. 哪里使用到nginx 1.4. Nginx和Apache的区别 2. 安装Nginx服务器 2.1. 在windows上安装 2.2. 在Linux上安装 2.2.1. 写在前面 2.2.2. 准备使用yum安装...

    实战Nginx:取代Apache的高性能Web服务器 第一章

    第1章 Nginx简介 1.1 常用的Web服务器简介 1.2 Nginx简介 1.3 选择Nginx的理由 1.4 Nginx与Apache、Lighttpd的综合对比 第2章 Nginx服务器的安装与配置 2.1 安装Nginx服务器所需要的系统资源 2.2 Nginx的下载 2.3 ...

    实战Nginx.取代Apache的高性能Web服务器

    第1章 Nginx简介 1.1 常用的Web服务器简介 1.2 Nginx简介 1.3 选择Nginx的理由 1.4 Nginx与Apache、Lighttpd的综合对比 第2章 Nginx服务器的安装与配置 2.1 安装Nginx服务器所需要的系统资源 2.2 Nginx的下载...

    Nginx高性能WEB服务器视频.rar

    1 Nginx入门简介.rar 网盘文件永久链接 2 Nginx工作原理及安装配置.rar 3 Nginx常用命令管理及升级.rar 4 Nginx配置文件精讲一.rar 5 Nginx配置文件精讲二及多站点配置。rar 6企业实战Nginx+Tomcati动静分离架构.rar...

    nginx 官方中文手册

    第1章 Nginx简介 第2章 Nginx服务器的安装与配置 第3章 Nginx的基本配置与优化 第4章 Nginx与PHP(FastCGI)的安装、配置与优化 第5章 Nginx与JSP、ASP.NET、Perl的安装与配置

    实战Nginx-PDF版.zip

    主要内容包括:第1章 Nginx简介;第2章Nginx服务器安装与配置;第3章Nginx基本配置与优化;第4章Nginx与PHP;第5章Nginx与JSP、ASP.NET..第6章Nginx http负载均衡和反向代理;第7章Nginx 的rewrite规则与实例;第8章...

    5天精通nginx最全技术教程

    nginx安装 windows安装 linux安装 源码安装 yum安装 docker安装 nginx解析 nginx执行过程 防盗链 缓存 压缩 限速 黑白名单 跨域处理 负载均衡 htts配置 nginx高可用 nginx动态添加模块 平滑升级 ...

    Nginx 手册

    1.Nginx简介 2.Nginx服务器的安装与配置 3.Nginx的基本配置与优化 4.Nginx与PHP(FastCGI)的安装,配置与优化 5.Nginx与JSP,ASP.NET,Perl的安装与配置 6.Nginx HTTP负载均衡和反向代理的配置与优化 7.Nginx的Rewrite...

    Nginx权威教程

    第1章 Nginx简介, 第2章 Nginx服务器的安装与配置,第3章 Nginx的基本配置与优化,第4章 Nginx与PHP(FastCGI)的安装、配置与优化........第15章 Nginx的邮件模块

    Nginx服务器详解加配置教程

    1、Nginx简介 2 2、反向代理Web服务器的“经纪人” 2 2.1反向代理初印象 2 2.2反向代理的作用 3 3、安装及配置 5 3.1下载 5 3.2 安装 6 3.2.1环境要求 6 3.2.2编译及安装 7 3.3 Nginx的启动及关闭 8 3.3.1启动 8 ...

Global site tag (gtag.js) - Google Analytics