Apache和Tomcat之间的区别以及为什么它们需要一起工作。


出版日期:2021年1月1日。



INFOMARTION > Apache和Tomcat之间的区别以及为什么它们需要一起工作。

概述。

我想介绍一下Apache和Tomcat之间的区别,以及为什么它们需要链接,在我刚开始的时候,即使问了前辈和在网上研究,也找不到一个满意的答案。 有时人们会说Apache是一个Web服务器(执行静态处理),而Tomcat是一个Servlet容器(执行动态处理)(这是我刚来时一位资深同事告诉我的),但如果仔细研究,Tomcat也有Web服务器功能。 那么你会认为Tomcat就是你所需要的一切。 这最终又回到了为什么Apache和Tomcat需要联系在一起的问题。 对于那些人,我想解释一下Apache和Tomcat之间的区别,以及为什么它们需要一起工作。

目录

  1. 为什么要把Apache和Tomcat联系起来?
  2. 阿帕奇功能
  3. Tomcat的特点
  4. 考虑
  5. 摘要

1. 为什么要把Apache和Tomcat联系起来?

要得出的第一个结论是角色的专业化程度不同。 Apache擅长网络服务器功能,而Tomcat擅长使用Java进行动态处理。

写出专业性有区别的原因是,Tomcat本身也有作为网络服务器的功能。 这可能有点极端,但如果有一个Apache和Tomcat相连的系统,只用Apache和只用Tomcat实现几乎相同的系统也不是不可能的。

1-1. 在专业知识方面有什么不同?

在考虑角色专业化的差异时,我们觉得这很难理解,因为突然在Apache和Tomcat之间进行了比较。 如果你从Tomcat和DB服务器的角度考虑,会更容易理解。 这听起来很极端,但有可能只用Tomcat创建一个应用程序而不设置DB服务器。 例如,你可以在xml或property中管理用户信息,并创建一个应用程序,根据这些信息验证登录。 然而,在现实中,如果你看一下一般的网络系统,大多数系统在DB中管理用户信息,并将数据从Tomcat引向DB服务器。 如果你考虑一下原因,那是因为你可以更有效地开发应用程序。

有时人们会解释关于Apache和Tomcat之间合作的 "优势 "和 "劣势",但这不是关于优势和劣势。 当被问及连接Tomcat和DB服务器的 "优势 "和 "劣势 "时,我会回答说,这些角色一开始就不同。 这同样适用于Apache和Tomcat,它们一开始就有不同的角色。

1-2. 什么是阿帕奇?

在提到角色不同之后,我现在想解释一下Apache和Tomcat的角色是什么。

再次,Apache的正式名称是Apache HTTP服务器。 Apache是一个网络服务器,但简而言之,其作用是分析请求。

具体而言,这些是。

  • 对特定IP地址进行过滤(允许/拒绝请求)。
  • 对特定的URL进行重定向。
  • 拒绝特定的URL
  • 通过SSL对通信进行加密
  • 根据要求将进程分配给特定的服务器

以上只是一个例子,还有更多的功能,但总之,Apache(网络服务器)的作用是如何处理从用户那里收到的请求。

Tomcat的工作是根据具体的请求来决定做出什么样的响应。 不应误解的一点是,Apache并不禁止创建响应。 就像Tomcat与DB服务器合作,在Tomcat这边维护简单的数据(如消息列表)一样,只要是简单的响应,Apache实现动态页面也没有问题。 关键是什么可以最有效地处理和整齐地管理。

1-3. 什么是Tomcat?

Tomcat的官方名称是 "Apache Tomcat"。 Tomcat是一个servlet容器,但要简单地解释它的作用,它负责根据请求进行动态处理。

具体而言,这些是。

  • 根据请求信息登记数据。
  • 根据请求信息创建动态页面和响应。
  • 根据请求信息确定用户,并为每个用户创建不同的响应。

基本上,Tomcat的工作是向用户返回非固定页面的页面。

这是另一个不应该被误解的地方:这并不意味着静态页面(如html)不应该被放在Tomcat中。 如果团队的设计理念是在Tomcat一侧管理所有的html,那么将静态页面放在Tomcat上是没有问题的。 在这种情况下,关键点也是什么可以最有效地处理和整齐地管理。

2. 阿帕奇功能

我想介绍一下Apache的一些特点。 Apache提供了许多模块(将进程打包的文件)。 加载该模块并描述使用其功能所需的配置值。 我想介绍一下有哪些模块可以使用。

2-1. 有能力同时处理请求。

模块 "mpm_prefork_module "是相关模块。 还有 "mpm_worker_module "和 "mpm_event_module",尽管功能几乎相同。

设置值如下。

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0
</IfModule>

当以这种方式描述时,当服务器启动时,可以启动 "5 "个进程,同时并行处理 "5 "个进程,当有大量的请求进来时,最多可以并行处理 "250 "个。

2-2. 重写请求的URL

模块'rewrite_module'是相关模块。

设置值如下。

<IfModule rewrite_module>
  RewriteEngine on
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

如果这样说的话,如果一个请求是以http方式进来的,那么它将被返回给用户,让其在https方式下再次请求。

2-3. 按IP地址进行访问控制

这个与模块略有不同,但它通过IP地址控制访问。

以下描述将阻止来自 "1.0.16.0/20"、"1.0.64.0/18 "和 "1.1.64.0/18 "以外的IP访问。

<Directory />
    order deny,allow
    deny from all
    allow from 1.0.16.0/20
    allow from 1.0.64.0/18
    allow from 1.1.64.0/18
</Directory>

3. Tomcat的特点

我想解释一下Tomcat的功能。

3-1. 能够使用Java动态地返回网页。

Tomcat的专长在于其 "使用Java动态返回网页的能力"。 一般来说,你不会自己创建所有的Java处理,而是与不同组织制作的Java库(Apache中的模块)结合使用。

  • 根据用户请求参数动态生成响应。
  • 以一种特定的格式输出日志文件。
  • 创建和编辑Excel文件
  • 确定该压缩文件是否有密码。

诸如上述的复杂过程可以通过插入一个库并调用该库来实现。 Tomcat的作用是使这些复杂的过程容易实现。

4. 考虑

我们已经解释过,Apache和Tomcat的区别在于 "角色专业化",但Apache(Apache HTTP Server)和Tomcat(Apache Tomcat)都是由同一个Apache软件基金会创建的。 原因可能是Apache是用C语言编写的,而Tomcat是用Java编写的,这两种语言是不同的,但之所以不把它们合二为一,可能是因为它们扮演的角色不同"。

Tomcat的主页相当广泛,而且它作为网络服务器的功能也很好。

http://tomcat.apache.org/

  • SSL/TLS(通信加密)。
  • SSI(在HTML中嵌入不同的HTML的能力)。
  • 重写(URL重写功能)

Apache是一个高性能的网络服务器,但有许多功能是不使用的,所以Apache软件基金会可能使Tomcat可以在没有Apache的情况下独立运行。 然而,如果你需要详细的请求控制,还是要包括Apache。

5. 摘要

介绍了Apache和Tomcat之间的区别以及为什么它们需要一起工作。

我以为这个问题的答案很难理解,因为Tomcat是一个全功能的网络服务器。 考虑一下Apache和Tomcat之间的合作是很好的,要记住Tomcat作为网络服务器的功能不是它的主要功能(它不是专门的网络服务器)。

谢谢你一直看到最后。




■INFORMATION

请点击这里,进入信息首页。


■PROFILE

请点击这里查看简介。


■联系方式。

有关文章的查询,请在此与我们联系。