web容器(Nginx、Apache、Tomcat)

一、Apache

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,

是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。

二、Nginx

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

反向代理:
"它代理的是服务端,代服务端接收请求",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。

反向代理的作用:
(1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网
(2)负载均衡,通过反向代理服务器来优化网站的负载

负载均衡:
Nginx反向代理服务器接收到的请求数量,即负载量。
请求数量按照一定的规则进行分发到不同的服务器处理的规则,就是一种均衡规则。
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

三、Tomcat

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,

在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

1、apache和nginx

Apache和Nginx算是市面上两款比较强大的WEB服务软件。

Apache的优点:
支持模块多,功能多;运行稳定性强;支持PHP模块,无需安装其他多余的组件就可以实现.php动态页面的解析;地址重写功能(rewrite)强大

Nginx的优点:
强大的抗并发能力;消耗主机资源小;非阻塞性异步功能

Apache与Nginx的区别差异:
(1)异步能力:Apache中也有异步模块,支持异步功能,不过是阻塞性异步,而Nginx是非阻塞性异步。

(2)多并发:Nginx因为软件体积小,异步功能,所以消耗主机资源少,抗并发能力是Apache的3倍以上。

(3)稳定性:Apache算是一款老牌的WEB服务软件,发展时间长,BUG少,比Nginx更值得信赖。

2、apache和tomcat

Apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展。
Apache和Tomcat都可以做为独立的web服务器来运行,但是Apache不能解释java程序
Apache是普通服务器,本身只支持html即普通网页
两者都是一种容器,只不过发布的东西不同:Apache是html容器,功能像IIS一样;
Tomcat是jsp/servlet容器,用于发布jsp及java的,类似的有IBM的webshere、EBA的Weblogic,sun的JRun等等。
Apache只支持静态网页,但像asp,php,cgi,jsp等动态网页就需要Tomcat来处理。

3、nginx和tomcat

从应用方面 tomcat一般是做动态解析才会用得到,支持jsp(Java Server Pages包括html和java,可以写java代码也可以写html和js代码,
就像.asp页面一样可以写c#和html还有js)的解析,需要配置JDK支持

nginx,则一般是做静态(html和js),本身不具备动态解析功能,需要配置其他插件或通过其他软件协同才具备动态功能,
比如php,tomcat,或者proxypass到win2008的iis服务器做ASP的动态链接等。

两者应用领域不一样,tomcat是做java语言的动态解析,而nginx则是一款功能强大的负载软件,配合各种插件可以实现各种功能

4、nginx、apache和tomcat之间的关系和区别

Apache/Nginx 应该叫做 HTTP Server,即安装后生成httpd服务。
Tomcat 则是一个 Application Server,或者更准确的来说,是一个「Servlet/JSP」应用的容器
一个 HTTP服务器,其关心的是 HTTP 协议层面的传输和访问控制,所以在 Apache/Nginx 上你可以看到代理、负载均衡等功能。

客户端通过 HTTP Server 访问服务器上存储的资源(HTML 文件、图片文件等等)。通过 CGI 技术,也可以将处理过的内容通过 HTTP Server 分发,

但是一个 HTTP Server 始终只是把服务器上的文件如实的通过 HTTP 协议传输给客户端。

而应用服务器,则是一个应用执行的容器。它首先需要支持开发语言的 Runtime(对于 Tomcat 来说,就是 Java),保证应用能够在应用服务器上正常运行。

其次,需要支持应用相关的规范,例如类库、安全方面的特性。对于 Tomcat 来说,就是需要提供 JSP/Sevlet 运行需要的标准类库、Interface 等。

为了方便,应用服务器往往也会集成 HTTP Server 的功能,但是不如专业的 HTTP Server 那么强大,所以应用服务器往往是运行在 HTTP Server 的背后,执行应用,

将动态的内容转化为静态的内容之后,通过 HTTP Server 分发到客户端。

5、WAMP/LAMP

WAMP:
Windows下的Apache+Mysql/MariaDB+Perl/PHP/Python,一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,

但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。

LAMP:
Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,

但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。

这两种的区别:一个在Windows环境下开发,一个则是在linux下。

你可能感兴趣的:(web容器(Nginx、Apache、Tomcat))