Centos环境下Tomcat虚拟主机配置详细教程

2025-03-19 14:50

本文主要是介绍Centos环境下Tomcat虚拟主机配置详细教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Centos环境下Tomcat虚拟主机配置详细教程》这篇文章主要讲的是在CentOS系统上,如何一步步配置Tomcat的虚拟主机,内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定...

最近在折腾 Tomcat 的时候,遇到了一个需求:需要在一台服务器上跑多个网站,每个网站用不同的域名访问。乍一看,这不就是虚拟主机的活儿嘛!但对 Tomcat 的虚拟主机配置不太熟,查了不少资料,踩了几个坑,终于搞定了。于是就想着把整个过程整理下来,分享给有类似需求的小伙伴,希望能少走弯路。

这篇文章主要讲的是在 Centos 系统上,如何一步步配置 Tomcat 的虚拟主机。内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定。

1. 准备虚拟主机的目录和内容

为每个虚拟主机创建独立的目录,并放置测试文件。

Centos环境下Tomcat虚拟主机配置详细教程

创建目录

mkdir -p /var/www/site1
mkdir -p /var/www/site2

添加测试文件

echo "Welcome to Site 1" > /var/www/site1/index.html
echo "Welcome to Site 2" > /var/www/site2/index.html

2. 修改 Tomcat 的 server.xml 配置文件

编辑 Tomcat 的 server.xml 文件:

vim $CATALINA_HOME/conf/server.xml

找到 <Engine> 标签(通常在 <Service name="Catalina"> 下),并在其中添加两个 <Hopythonst> 配python置块。

修改后的配置示例:

Centos环境下Tomcat虚拟主机配置详细教程

<Engine name="Catalina" defaultHost="localhost">
 
    <!-- 默认的 localhost 配置 -->
    <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="${catalina.home}/webapps/ROOT" />
    </Host>
 
    <js!-- 虚拟主机 1 -->
    <Host name="www.site1.com" appBase="" unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="/var/www/site1" />
    </Host>
 
    <!-- 虚拟主机 2 -->
    <Host name="www.site2.com" appBase="" unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="/var/www/site2" />
    </Host>
 
</Engine>

配置说明

  • name:虚拟主机的域名,例如 www.site1.com 和 www.site2.com
  • appBase:设置为空字符串 "",因为我们直接指定了 docBase。 对应应用部署的目录
  • docBase:虚拟主机的文档根目录,分别为 /var/www/site1 和 /var/www/site2
  • path:设置为 "",表示虚拟主机的根路径(/)。

补充说明:Engine节点 是核心组件之一 用于管理虚拟主机 下面可以定义多个host节点

访问测试

Centos环境下Tomcat虚拟主机配置详细教程

4. 重启 Tomcat

重新启动 Tomcat 以应用新的配置:

$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh

5. 测试虚拟主机

在浏览器中访问以下地址:

访问 http://www.site1.com:8080,应显示 Welcome to Site 1

访问 http://www.site2.com:8080,应显示 Welcome to Site 2

注意事项

  • 防火墙配置 如果您的 Tomcat 运行在非默认端口(如 80),需要确保防火墙允许该端口的流量。
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
  1. DNS 配置 如果在生产环境中使用,需要在 DNS 服务器中配置 www.site1.com 和 www.site2.com 的域名解析到服务器的公网 IP。
  2. 生产环境建议
    • 使用 Apache 或 Nginx 作为反向代理,将域名请求转发到 Tomcat 的虚拟主机配置 HTTPS 以保证安全性。

总结

搞定之后回头看,其实配置 Tomcat 虚拟主机并不难,关编程键是要细心,别漏掉小细节。比如:

  • 目录路径:一定要确认 docBase 指向的目录存在,并且权限设置正确。
  • 防火墙:别忘了开放 Tomcat 的端口,不然你本地测得好好的,外网却访问不了。
  • DNS 配置:如果是线上环境,域名解析必须指向服务器的公网 IP。
  • 安全性:生产环境建议用 Nginx 或 Apache 做反向代理,别直接暴露 Tomcat,顺便把 HTTPS 配置上。

以上就是Centos环境下Tomcat虚拟主机配置详细教程的详细内容,更多关于Tomcat虚拟主机配置的资料请关注China编程(www.chinasem.cn)其它相关文章!

这篇关于Centos环境下Tomcat虚拟主机配置详细教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1153830

相关文章

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

SpringBoot内嵌Tomcat临时目录问题及解决

《SpringBoot内嵌Tomcat临时目录问题及解决》:本文主要介绍SpringBoot内嵌Tomcat临时目录问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录SprinjavascriptgBoot内嵌Tomcat临时目录问题1.背景2.方案3.代码中配置t