`
足至迹留
  • 浏览: 496708 次
  • 性别: 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 安装及配置文档

    **Nginx简介** Nginx 是一款高性能的 Web 和反向代理服务器,以其轻量级、高并发处理能力和稳定性而著称。它被广泛应用于静态文件服务、动态内容代理、负载均衡等领域,是现代互联网架构中的关键组件之一。 **安装...

    Nginx文件上传进度显示

    &lt;title&gt;Nginx 上传进度 Demo&lt;/title&gt; &lt;script type="text/javascript" src="/js/jquery/1.7.2/jquery.min.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="/js/ajaxfileupload.js"&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; ...

    前端学习路线推荐+自己做的一个前端项目(旅游线路推广)+通过购买腾讯云服务器上传的个人经历(附带部分关键源码)

    2. **环境搭建**: 安装必要的软件,如Nginx、MySQL等。 3. **上传文件**: 通过FTP客户端将项目文件上传至服务器。 4. **域名绑定**: 为服务器绑定一个域名,便于访问。 5. **安全设置**: 配置防火墙规则,确保服务器...

    linux上安装nginx发布项目.rar

    一、Nginx简介 Nginx以其高效稳定、低内存消耗和强大的并发处理能力而闻名。它采用事件驱动的异步非阻塞模型,使得在高并发场景下表现卓越。Nginx不仅能够作为Web服务器,还能配合其他应用服务器如PHP-FPM进行动态...

    nginx自动安装

    一、Nginx简介 Nginx(发音为"engine x")是一款反向代理、负载均衡器以及HTTP缓存服务器,以其事件驱动的架构而著名,能够高效处理大量并发连接。Nginx以其轻量级、稳定性和低内存占用的特点,成为许多网站和应用...

    Nginx 安装配置教程.pdf

    #### 一、Nginx 简介及安装 **Nginx** 是一款广泛使用的高性能 Web 服务器和反向代理服务器,因其出色的稳定性、丰富的功能集、简单的配置文件和低资源消耗而备受青睐。本文将详细介绍如何在 Ubuntu 系统上安装 ...

    nginx的三个不同的版本在linux安装使用

    【Nginx简介】 Nginx 是一款高性能的 Web 和反向代理服务器,以其轻量级、高并发处理能力和稳定性而闻名。它广泛应用于互联网行业,用于提供静态内容服务、反向代理、负载均衡等任务。Nginx 的事件驱动模型和非阻塞...

    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...

    centOS8安装nginx及nginx配置

    #### 一、Nginx简介与应用场景 Nginx(发音为 "engine X")是一款由俄罗斯程序员Igor Sysoev开发的高性能Web服务器和反向代理服务器,同时也可用作IMAP/POP3/SMTP代理服务器。在高并发连接情况下,Nginx作为Apache...

    nginx安装包和教程

    **Nginx简介** Nginx是一款高性能的HTTP和反向代理服务器,也是一款邮件协议代理服务器。它以其稳定性、高并发处理能力以及低内存占用率而受到广泛赞誉。Nginx采用事件驱动的异步非阻塞模型,能够有效处理大量并发...

    php开发教程.docx

    Name: &lt;input type="text" name="name"&gt;&lt;br&gt; Age: &lt;input type="text" name="age"&gt;&lt;br&gt; &lt;input type="submit" value="Submit"&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt; ``` 以上内容涵盖了PHP开发的基础知识点,包括环境搭建...

    centos安装Nginx详细配置

    ### CentOS安装Nginx详细配置知识点 #### 一、安装准备 在开始部署Nginx之前,需要确保系统中已安装必要的开发工具和依赖库。 ##### 1. 安装GCC - **简介**:GCC (GNU Compiler Collection) 是一个用于编译多种...

    nginx 的安装

    #### 一、Nginx简介 Nginx是一款高性能的HTTP和反向代理服务器,同时也是一款IMAP/POP3/SMTP代理服务器。Nginx以其高稳定性、丰富的功能集、简单的配置方式以及低资源消耗而著称,在互联网行业中被广泛应用于负载...

    Nginx服务器的安装与配置

    #### 一、Nginx简介 Nginx是一款高性能的HTTP和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP服务。它以其稳定性、丰富的功能集、简单的配置文件和低资源消耗而闻名。Nginx是由Igor Sysoev编写的,其设计目的是...

    nginx压缩包和安装手册

    **Nginx简介** Nginx(发音engine x)是一款高性能的HTTP和反向代理服务器,也是一款电子邮件(IMAP/POP3)代理服务器。它以其稳定、丰富的功能集、简单易用的配置文件和低系统资源消耗而闻名。Nginx由伊戈尔·赛...

    安装Nginx依赖组件

    1. **Nginx简介** 2. **配置选项解析** 3. **依赖库安装** 4. **编译参数详解** 5. **安全注意事项** #### Nginx简介 Nginx是一款高性能的HTTP服务器和反向代理服务器,它以其稳定性、丰富的功能集、简单的配置...

    nginx和keepalived 安装使用

    #### 一、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简介** Nginx 是一款高性能的 Web 和反向代理服务器,以其轻量级、高并发处理能力和稳定性而闻名。它广泛应用于互联网行业,用于提供静态内容服务、反向代理、负载均衡等任务。Nginx 的工作原理是基于事件...

Global site tag (gtag.js) - Google Analytics