海外主机测评

您现在的位置是:首页 > 云服务器知识 > 正文

云服务器知识

nginx服务器作用,nginx的作用

cds8202023-01-31云服务器知识173
本文给各位分享nginx服务器作用的知识,其中也会对nginx的作用进行解释,都是最近更新的内容,希望对你有所帮助!本文目录:1、为什么要使用nginx服务器?2、Nginx的功能与特性3、为什么要使


本文给各位分享nginx服务器作用的知识,其中也会对nginx的作用进行解释,都是最近更新的内容,希望对你有所帮助!

本文目录:

  • 1、为什么要使用nginx服务器?

  • 2、Nginx的功能与特性

  • 3、为什么要使用Nginx

  • 4、nginx 有哪些功能

为什么要使用nginx服务器?

我们大多数的客户在他们的服务器上使用Apache作为Web服务器,尤其是部署在一个基于PHP系统的前端并且使用mod-PHP。鉴于扩张性和性能方面的原因,我们通常会建议他们改用Nginx和FPM。\x0d\x0a\x0d\x0aApache是非常强大的Web服务器,模块化结构,也是Web服务端的鼻祖。除了捆绑一些其他的工具外,Apache已经成为了世上最广泛部署的开源系统,直到最近,世界上大多数网站仍运行着Apache系统。\x0d\x0a\x0d\x0a但是,Apache并不是完美的,并且不再适合大规模系统。为什么?因为他的进程模式虽然简单而灵活,但并不适合大规模尤其是当要处理像PHP这种需要占用大量内存应用程序代码时。\x0d\x0a\x0d\x0a一个典型的网络应用服务器由两部分组成。客户端连接部分负责用户浏览器与HTTP连接,保持长时间的TCP/IP协议,通常是1到2分钟。对于一个大型的系统,服务器可能要同时承担和处理数以万计的并发连接。\x0d\x0a\x0d\x0a这直接与Apache只有 500条进程即500个HTTP连接的处理能力上限相冲突。而现今的浏览器让这个问题更加严重, 因为现在的浏览器平均每个主机会打开六个网站链接(几年前是两个网站链接)。所以当超过100个用户同时访问时,Apache就已经满负荷了。\x0d\x0a\x0d\x0a第二部分是应用程序处理部分,这部分承担了代码运算。在大多数系统中,这部分工作是最消耗RAM和CPU资源的,因此进程数量必须被严格限制,通常是大约每1GB的内存10个进程,或者每个CPU核心两个进程。因此一台4GB RAM、16内核的服务器最多只能运行32个应用程序进程。\x0d\x0a\x0d\x0a但是,问题的关键是,Apache直接连接前端客户端通讯组件与后端应用程序进程组件。如此一来,前端部分往往保持长时间的连接,常常达到几分钟,这导致后端部分将持续消耗内存和CPU资源。目前还没有直接的方法能够在大型系统中找到前后端服务的平衡,因此他们必须被分离开来。\x0d\x0a\x0d\x0a目前有两个主要的解决方法。第一个方法,也是现有系统上最容易的方法,就是在Apache前端安装负载均衡服务器或者Nginx来处理客户端连接部分。负载均衡服务器,像HAProxy或者Nginx能轻松处理成千上万条并发的连接,并使Apache能够真正的仅作为后端应用程序工作,来处理32个或是更多的进程。\x0d\x0a\x0d\x0a第二种方案,也是最通用的办法就是用Nginx替换Apache,同时使用PHP-PFM作为应用服务器。就像之前所提到的,这将分割前端客户端通信部分和后端应用程序部分。Nginx处理HTTP通讯协议,同时FPM处理后端应用程序部分,和那32个进程进行交互。\x0d\x0a\x0d\x0a然而这几种方法仍然还存在一些问题,主要是如何加载服务器的RPC调用,以及如何释放已经完成的RPC调用。 这两个问题都会在其他的博客中加以详解。\x0d\x0a\x0d\x0a另外,只使用Nginx的解决方法会给那些严重依赖于Apache功能的应用程序带来问题,尤其是特别依赖rewrite rules, .htaccess, 或者mod_security等一些可选组件的应用程序。在这种情况下,在Apache前端增加安装Nginx是最好的方法。\x0d\x0a\x0d\x0a通常来说,所有新的系统都应该使用Nginx和PHP-FPM来部署。这能提供高性能增长特性,并且是平衡用户和内存,CPU资源的最佳选择。已存在的系统可以在前端使用Nginx或者HAProxy以达到同样的效果,以便在当今现代网络环境中为用户提供更优质的服务。

Nginx的功能与特性

Nginx在过去的10年里,作为Web服务器行业里的新生代迅速崛起。Nginx由俄罗斯工程师Igor Sysoev编写,2004年10月4日发布了第一个公众版本:1.0.1。Apache一直占据Web服务器行业的第一,但自2008年开始,它的市场份额在潜移默化的转移到Nginx身上。直至今日,据Netcraft的统计显示,全世界排名前100万的网站中有超过27%的网站在使用Nginx作为Web服务器。Nginx迅速在一向稳定的Web服务器行业崛起并站稳跟脚.

1 、静态HTTP服务器

Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。

2、反向代理服务器

客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器。

3、负载均衡

当网站访问量非常大,将同一个应用部署在多台服务器上,将大量用户的请求分配给多台机器处理。同时带来的好处是,其中一台服务器万一挂了,只要还有其他服务器正常运行,就不会影响用户使用。Nginx可以通过反向代理来实现负载均衡,并能使用3种自带策略及2种第三方策略。

(1)RR(默认,每个请求按时间顺序逐一分配到不同的后端服务器)

(2)权重(指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况)

(3)ip-hash(以上配置会将请求轮询分配到应用服务器,也就是一个客户端的多次请求,有可能会由多台不同的服务器处理(若存在登录sessiON时则需要重复登录)。ip-hash根据客户端ip地址的hash值将请求分配给固定的某一个服务器处理)

(4)fair(第三方 按后端服务器的响应时间来分配请求,响应时间短的优先分配)

(5)url_hash(第三方 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法)

4、虚拟主机

有的网站访问量大,需要负载均衡。有的网站,由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上。例如将和两个网站部署在同一台服务器上,两个域名解析到同一个IP地址,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机。

在服务器8080和8081分别开了一个应用,客户端通过不同的域名访问,根据server_name可以反向代理到对应的应用服务器。虚拟主机的原理是通过HTTP请求头中的Host是否匹配server_name来实现的,另外,server_name配置还可以过滤有人恶意将某些域名指向你的主机服务器。

1、IO多路复用epoll

2、轻量级

3、CPU亲和(affinity)

4、sendfile


为什么要使用Nginx

Nginx是一个高性能的Web和反向代理服务器,它具有很多非常优越的特性:

作为Web服务器:相比Apache,Nginx使用更少的资源,支持更多的并发连接,体现更高的效率,这点使Nginx尤其受到虚拟主机提供商的欢迎。能够支持高达50,000个并发连接数的响应,感谢Nginx 为我们选择了epoll and kqueue作为开发模型.

作为负载均衡服务器:Nginx既可以在内部直接支持Rails和PHP,也可以支持作为HTTP代理服务器对外进行服务。Nginx用C编写, 不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。

作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器,Last.fm描述了成功并且美妙的使用经验。

Nginx安装非常的简单,配置文件非常简洁,Bugs非常少的服务器:Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下进行软件版本的升级。

nginx 有哪些功能

1.处理静态文件,索引文件以及自动索引;

2.反向代理加速(无缓存),简单的负载均衡和容错;

3.FastCGI,简单的负载均衡和容错;

4.模块化的结构。过滤器包括gzipping,byte ranges,chunked responses,以及 SSI-filter。在SSI过滤器中,到同一个 proxy 或者 FastCGI 的多个子请求并发处理;

5.SSL 和 TLS SNI 支持;

6.IMAP/POP3代理服务功能:

7.使用外部 HTTP 认证服务器重定向用户到 IMAP/POP3 后端;

8.使用外部 HTTP 认证服务器认证用户后连接重定向到内部的 SMTP 后端;

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~