apache,nigix,tomcat区别与优缺点

来源:互联网 发布:overlay网络的价值 编辑:程序博客网 时间:2024/05/21 18:43

        我们先来看一下各个服务器分别是用什么语言写的。Apache是用C写的,Nigix是用C写的,Tomcat是用Java写的。

       Tomcat是Apache的拓展,更实质的说是Java应用服务器,用于处理JSP后台语言开发的应用,主要用于处理JSP动态网页。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器(主要用于解析servlet/JSP,同时具备http服务),单纯的Tomcat性能有限,在很多地方表现有欠缺,如活动连接支持、静态内容、大文件和HTTPS等,因此多数都是Apache+Tomcat+JavaSDK的集成。严格的来说,Apache/Nginx 应该叫做「HTTP Server」;而 Tomcat 则是一个「Application Server」,或者更准确的来说,是一个「Servlet/JSP」应用的容器(Ruby/Python 等其他语言开发的应用也无法直接运行在 Tomcat 上)。对于 Tomcat 来说,就是需要提供 JSP/Sevlet 运行需要的标准类库、Interface 等。为了方便,应用服务器往往也会集成 HTTP Server 的功能,但是不如专业的 HTTP Server 那么强大,所以应用服务器往往是运行在 HTTP Server 的背后,执行应用,将动态的内容转化为静态的内容之后,通过 HTTP Server 分发到客户端。

       Apache是一个Web服务器环境程序,启用它可以作为Web服务器使用,主要用于处理静态网页,比如HTML,HTM等文件,其与PHP模块结合,也可以解析PHP网页。但是其不适宜高并发的请求,但是从稳定性来说,比nigix bug少,毕竟是世界上第一大服务器,发展时间比nigix历史悠久。

       相对于nigix来说,nigix更适合高并发的请求,而且其配置比Apache简单,也适合做反向代理。反向代理是指的,服务器代理网络上的客户机请求,将请求转达给内部真实服务器,然后在返回给Internet客户端,代理服务器上面没有任何网页资料。反向代理和正向代理没有冲突,可以在防火墙设备中同时使用这两种结合,正向代理可以进行过滤,保护内部网络安全。具体可以参考  https://jingyan.baidu.com/article/f54ae2fcd895b81e93b84973.html ,这里讲的很清楚。nigix来说连接处理是异步的,万级的连接对应一个进程,因此对资源的消耗也比较小,更适合作为前端的代理服务器。比如把客户端的请求合理的分配给后台运行应用的服务器,比如Tomcat等。