Apache和Tomcat之间的区别以及为什么它们需要一起工作。
出版日期:2021年1月1日。
INFOMARTION > Apache和Tomcat之间的区别以及为什么它们需要一起工作。
概述。
我想介绍一下Apache和Tomcat之间的区别,以及为什么它们需要链接,在我刚开始的时候,即使问了前辈和在网上研究,也找不到一个满意的答案。 有时人们会说Apache是一个Web服务器(执行静态处理),而Tomcat是一个Servlet容器(执行动态处理)(这是我刚来时一位资深同事告诉我的),但如果仔细研究,Tomcat也有Web服务器功能。 那么你会认为Tomcat就是你所需要的一切。 这最终又回到了为什么Apache和Tomcat需要联系在一起的问题。 对于那些人,我想解释一下Apache和Tomcat之间的区别,以及为什么它们需要一起工作。
目录
- 为什么要把Apache和Tomcat联系起来?
- 1-1. 在专业知识方面有什么不同?
- 1-2. 什么是阿帕奇?
- 1-3. 什么是Tomcat?
- 阿帕奇功能
- 2-1. 有能力同时处理请求。
- 2-2. 重写请求的URL
- 2-3. 按IP地址进行访问控制
- Tomcat的特点
- 3-1. 能够使用Java动态地返回网页。
- 考虑
- 摘要
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的主页相当广泛,而且它作为网络服务器的功能也很好。
- SSL/TLS(通信加密)。
- SSI(在HTML中嵌入不同的HTML的能力)。
- 重写(URL重写功能)
Apache是一个高性能的网络服务器,但有许多功能是不使用的,所以Apache软件基金会可能使Tomcat可以在没有Apache的情况下独立运行。 然而,如果你需要详细的请求控制,还是要包括Apache。
5. 摘要
介绍了Apache和Tomcat之间的区别以及为什么它们需要一起工作。
我以为这个问题的答案很难理解,因为Tomcat是一个全功能的网络服务器。 考虑一下Apache和Tomcat之间的合作是很好的,要记住Tomcat作为网络服务器的功能不是它的主要功能(它不是专门的网络服务器)。
谢谢你一直看到最后。