[云原生专题-35]:K8S - 核心概念 - 网络 - 轻量级Web服务器tomcat

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122818223


目录

第1章 Tomcat简介

1.1 什么是Tomcat

1.2 什么是Apache HTTP Server 

1.3 什么是Nginx

第2章 Tomcat与Apache的比较

2.1 相同点

2.2 不同点

第3章 Tomcat结合Apache、Nginx实现高性能的web服务器


第1章 Tomcat简介

1.1 什么是Tomcat

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

Tomcat 是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。
Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。

缺点:

  • Tomcat 只能用做java服务器
  • tomcat处理html的能力不如Apache和nginx,tomcat处理静态内容的速度不如apache和nginx。
  • tomcat接受的最大并发数有限,连接数过多,会导致tomcat处于"僵尸"状态,对后续的连接失去响应,需要结合nginx一起使用。

优点:动态解析容器,处理动态请求,是编译JSP/Servlet的容器。

1.2 什么是Apache HTTP Server 

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

Apache支持模块多,性能稳定,Apache本身是静态解析,适合静态HTML、图片等,但可以通过扩展脚本、模块等支持动态页面等。
缺点:配置相对复杂,自身不支持动态页面。
优点:相对于Tomcat服务器来说处理静态文件是它的优势,速度快。Apache是静态解析,适合静态HTML、图片等。

1.3 什么是Nginx

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。其特点是占有内存少,并发能力强,易于开发,部署方便。Nginx 支持多语言通用服务器。

缺点:Nginx 只适合静态反向代理

优点:基于HTTP层的负载均衡反向代理、处理静态文件优势。这是Nginx最重要的特点。

Nginx 处理静态请求的速度高于Apache。
Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。
 

第2章 Tomcat与Apache的比较

2.1 相同点

  • 两者都是web网络服务器
  • 两者都是apache组织开发的
  • 两者都是开源免费的
  • Apache和Tomcat是独立的,在同一台服务器上可以集成

2.2 不同点

  • Apache是普通服务器,本身只支持html即普通网页,可以通过插件支持php,还可以与Tomcat连通
  • Apache只支持静态网页,但像Jsp动态网页就需要Tomcat来处理。Apache是web服务器(静态解析,入HTML), tomcat是java应用服务器, 动态解析,比如 jsp,php
  • Apache是有C语言实现的,支持各种特性和模块从而来扩展核心功能;Tomcat是Java编写的,更好的支持Servlet和JSP。
  • Apache是Web服务器,Web服务器传送(serves)页面使浏览器可以浏览,Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供 (serves)业务逻辑(business logic)。Tomcat是运行在Apache上的应用服务器,应用程序服务器提供的是客户端应用程序可以调用(call)的方法 (methods)。它只是一个servlet(jsp也翻译成servlet)容器,可以认为是Apache的扩展,但是可以独立于apache运行。
  • 如果把Apache看是一辆车,则上面可以装一些东西如html等,但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上,那这个桶就是TOMCAT。

第3章 Tomcat结合Apache、Nginx实现高性能的web服务器

Tomcat虽然是一个servlet和jsp容器,但是它也是一个轻量级的web服务器。

它既可以处理动态内容,也可以处理静态内容。不过,tomcat的最大优势在于处理动态请求,处理静态内容的能力不如apache和nginx,在高并发的场景下,其接受的最大并发连接数是有限制的,连接数过多会导致tomcat处于"僵死"状态,因此,在这种情况下,我们可以利用nginx的高并发,低资源消耗的特点与tomcat一起使用,搭建高性能的web服务器系统。

通常情况下,tomcat与nginx、Apache结合使用,nginx、apache既可以提供web服务,也可以转发动态请求至tomcat服务器上。

但在一个高性能的站点上,通常nginx、apache只提供HTTP代理的功能,然后把请求转发请求至tomcat服务器上,tomcat充当K8S的Pod角色。而对于静态内容的响应,则由前端负载均衡器来转发至专门的静态服务器上进行处理。

其架构类似于如下图:

在这里插入图片描述

  • Tomcat:在K8S网络架构中,处于后端的Pod的位置,只用于处理动态页面的请求。
  • nginx:在K8S网络架构中,nginx可以在两个位置发挥作用,一是位于后端的Pod的位置,用于处理静态的页面请求;二是前端的基于HTTP协议的负载均衡器。

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122818223

你可能感兴趣的:(云原生专题,tomcat,服务器,Webserver,云原生,K8S)