读书笔记《apache-tomcat-7-essentials》针对ApacheTomcat 7的高级配置
在前面的章节中,我们讨论了 Tomcat 7 的各种主题,例如集群、负载平衡等。但是,实际上,除了 Tomcat 内部配置之外,为了管理系统,还需要在系统上执行一些不同的配置。在本章中,我们将讨论 Tomcat 7 的高级主题,用于实际行业,以创建 Web 基础架构并支持多个 Web 应用程序。
在本章中,我们将讨论以下主题:
虚拟主机
在单个 Tomcat 服务器上运行多个应用程序
多个 Tomcat 环境,例如 Development、QA、Stage 和 Production
调整缓存
Tomcat的优化
这是一种方法,您可以通过它在同一 Web 服务器或单个 IP 上托管多个域名。该概念称为共享托管,其中一台服务器用于托管多个网站。例如,如果您想托管 abc.com
和 xyz.com
,稍后您想在相同的 Web 服务器,可以通过虚拟主机来实现。基本上,有两种类型的虚拟主机:
基于名称的虚拟主机
基于IP的虚拟主机
这是一种方法,您可以通过它在单个 IP 上托管多个域。它使用共享服务的概念。在实践中,网络托管公司遵循这种方法以低成本托管多个站点。例如,我们有多个网站如 www.abc.com,www.xyz.com 和 www.xzy.com,我们想在单一的web服务器上配置它,使用单一的IP,然后使用基于名称的虚拟主机。以下是名称的优点基于虚拟主机:
使用单个 IP 地址将多个网站放在服务器上
易于配置
共享 SSL 证书
如果您想在 Web 服务器上实现基于命名的虚拟主机,则必须在进行配置之前完成以下先决条件。
例如,如果您想在 Web 服务器上托管前面提到的网站,那么我们必须执行以下提到的方法来配置 域名服务器 (DNS)。假设网络服务器名称是 webserver1.yxz.com
并托管在 IP 192.168.0.1 上。您必须在您的 DNS 服务器中添加以下记录:
别名 |
资源记录 |
领域 |
---|---|---|
|
一个 |
192.168.0.1 |
C |
webserver1.yxz.com |
|
C |
webserver1.yxz.com |
|
C |
webserver1.yxz.com |
创建这些记录后,您可以在 Web 服务器配置中配置虚拟服务器。
通过这种方法,您可以使用不同的 IP 在同一台服务器上托管多个网站。这种方法遵循专用环境的概念。在这里,您也可以在一台服务器上配置多个网站,但唯一的区别是域配置在不同的网络接口上。
以下是基于 IP 的虚拟主机的优势:
如果您想在 Web 服务器上实现基于 IP 的虚拟主机,那么您必须在进行配置之前完成以下先决条件。
例如,如果您想在 Web 服务器上托管前面提到的站点,那么 DNS 将按以下方式配置。让我们假设 Web 服务器名称 webserver1.yxz.com
托管在 IP 192.168.0.1 上。所有其他域都配置在不同的 IP(192.168.0.2、192.168.0.3 和 192.168.0.4)上,如下表所示:
别名 |
记录 |
领域 |
---|---|---|
|
一个 |
192.168.0.1 |
|
一个 |
192.168.0.2 |
|
一个 |
192.168.0.3 |
|
一个 |
192.168.0.4 |
创建这些记录后,您可以在 Web 服务器配置中配置虚拟服务器。
这是一种方法,您可以通过它在同一 Web 服务器或单个 IP 上托管多个域名。该概念称为共享托管,其中一台服务器用于托管多个网站。例如,如果您想托管 abc.com
和 xyz.com
,稍后您想在相同的 Web 服务器,可以通过虚拟主机来实现。基本上,有两种类型的虚拟主机:
基于名称的虚拟主机
基于IP的虚拟主机
这是一种方法,您可以通过它在单个 IP 上托管多个域。它使用共享服务的概念。在实践中,网络托管公司遵循这种方法以低成本托管多个站点。例如,我们有多个网站如 www.abc.com,www.xyz.com 和 www.xzy.com,我们想在单一的web服务器上配置它,使用单一的IP,然后使用基于名称的虚拟主机。以下是名称的优点基于虚拟主机:
使用单个 IP 地址将多个网站放在服务器上
易于配置
共享 SSL 证书
如果您想在 Web 服务器上实现基于命名的虚拟主机,则必须在进行配置之前完成以下先决条件。
例如,如果您想在 Web 服务器上托管前面提到的网站,那么我们必须执行以下提到的方法来配置 域名服务器 (DNS)。假设网络服务器名称是 webserver1.yxz.com
并托管在 IP 192.168.0.1 上。您必须在您的 DNS 服务器中添加以下记录:
别名 |
资源记录 |
领域 |
---|---|---|
|
一个 |
192.168.0.1 |
C |
webserver1.yxz.com |
|
C |
webserver1.yxz.com |
|
C |
webserver1.yxz.com |
创建这些记录后,您可以在 Web 服务器配置中配置虚拟服务器。
通过这种方法,您可以使用不同的 IP 在同一台服务器上托管多个网站。这种方法遵循专用环境的概念。在这里,您也可以在一台服务器上配置多个网站,但唯一的区别是域配置在不同的网络接口上。
以下是基于 IP 的虚拟主机的优势:
如果您想在 Web 服务器上实现基于 IP 的虚拟主机,那么您必须在进行配置之前完成以下先决条件。
例如,如果您想在 Web 服务器上托管前面提到的站点,那么 DNS 将按以下方式配置。让我们假设 Web 服务器名称 webserver1.yxz.com
托管在 IP 192.168.0.1 上。所有其他域都配置在不同的 IP(192.168.0.2、192.168.0.3 和 192.168.0.4)上,如下表所示:
别名 |
记录 |
领域 |
---|---|---|
|
一个 |
192.168.0.1 |
|
一个 |
192.168.0.2 |
|
一个 |
192.168.0.3 |
|
一个 |
192.168.0.4 |
创建这些记录后,您可以在 Web 服务器配置中配置虚拟服务器。
Tomcat 7 支持基于名称的虚拟主机。这种方法对于在 Tomcat 7 的单个实例上托管多个 Web 应用程序非常有用。它还为管理员提供了更多权限,以将应用程序彼此分开以及它们的访问控制限制。除非您实施它,否则您无法理解虚拟主机的真正概念。那么为什么要等,让我们在 Tomcat 7 中进行虚拟主机的实际实现。
例如,如果您想在 Web 服务器上托管前面提到的站点,那么 DNS 将按以下方式配置。让我们假设 Web 服务器名称是 webserver1.yxz.com
并且托管在 IP 192.168.0.1 上。要实现上一个场景,需要执行以下步骤:
1、在DNS服务器中配置域名,重新加载DNS服务,以便在服务器上进行复制。以下是带有地址和 CNAME 的 DNS 记录:
别名
记录
领域
webserver1.yxz.com
一个
192.168.0.1
www.xyz.com
C
webserver1.yxz.com
www.xzy.com
C
webserver1.yxz.com
www.abc.com
C
webserver1.yxz.com
2. 要实现虚拟主机,您必须编辑
server.xml
,它位于TOMCAT_HOME/conf
中。需要为虚拟主机添加以下条目,如以下屏幕截图所示:3. 配置完成后,在 Linux 中的
/etc/hosts
中的hosts
文件中添加新的 DNS,然后< Windows 中的 code class="literal"> C:\Windows\System32\drivers\etc\。以下屏幕截图显示了在hosts
文件中添加了不同的主机名和 IP 地址:5. 检查网址 www.xyz.com,www.xzy.com,www.abc.com 在浏览器中。
一旦我们完成了虚拟主机,可能会出现一些潜在的问题,例如多个应用程序托管、安全性以及在 Tomcat 7 的单个实例上部署多个应用程序。在 Tomcat 7 的单个实例上配置多个域有点棘手.如果我们给应用程序一个文档根目录,那么所有开发人员都可以访问所有应用程序。解决方案是为每个域实现一个单独的文档根。这样,我们可以在 Tomcat 实例中托管的每个应用程序上实现单独的安全性。让我们通过在 Tomcat 7 中创建多个文档根来实现该解决方案。为此,我们必须编辑 server.xml
以在服务器中启用多个文档根,如下所示以下代码片段:
如果我们在每个应用程序上实现单独的文档根,那么我们可以在操作系统级别为应用程序实现用户安全。通过进行这些更改,我们可以根据每个开发人员的角色赋予每个开发人员访问代码的不同权限。此外,每个开发人员都可以访问代码并单独部署代码。
在第 3 章,性能调优中,我们讨论了各种优化方法Tomcat 是软件层面的,但是直到现在,我们还没有做任何系统层面的配置。我们现在将讨论系统管理员使他们的工作更成功所需的各种优化方法。所需的最重要的事情之一是以非特权用户身份运行 Tomcat 服务。