Tomcat的Server.xml虚拟主机和虚拟目录的配置

2024-06-22 17:32

本文主要是介绍Tomcat的Server.xml虚拟主机和虚拟目录的配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1 server.xml虚拟主机和虚拟目录
    • 1.1 修改端口
    • 1.2 增加虚拟目录
      • 1.2.1 最简单的方式
      • 1.2.2 自定义
    • 1.3 增加虚拟主机
      • 1.3.1 修改hosts文件,增加主机名
      • 1.3.2 修改配置文件
      • 1.3.3 目录设置
    • 1.4 其它问题
    • 1.5 server.xml文件

1 server.xml虚拟主机和虚拟目录

以前开发JavaEE网站都布置在Tomcat下,布置目录一般为$CATALINA_HOME/webapps/WebName,所以要访问网站,则在http://localhost后必须要加上上下文路径(ContextPath)/WebName,而运行环境一般为http://www.abc.com,上下文路径为空。
这样就造成了开发环境与运行环境的差异,虽然在JSP中可以通过<%=request.getContextPath()%>解决,但如果换成其它模板,比如Velocity,就又不行了。

Tomcat 5Tomcat 6的配置文件为:$CATALINA_HOME/conf/server.xml,其它的版本的Tomcat的配置文件同此
说明:虚拟主机在server.xmlHost,虚拟目录为Context

1.1 修改端口

Tomcat默认的WEB端口为8080

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

注意是修改HTTP协议的,也就是protocol="HTTP/1.1"的,不是其他的。

1.2 增加虚拟目录

1.2.1 最简单的方式

直接把JavaEE网站放在$CATALINA_HOME/webapps目录下了,然后通过http://localhost/WebNameWebName为网站的目录名;

1.2.2 自定义

把网站放在其它的目录下,比如放在/var/www/webapp目录下,那么就要修改server.xml了。
</Host>前增加以下内容即可:

<Context path="/SpringMVC" docBase="/var/www/webapp/SpringMVC" workDir="/var/www/webtmp/SpringMVC" debug="5" reloadable="false" crossContext="true" />

则可以通过http://localhost/SpringMVC访问了,也就是在主机名为localhost中增加了一个名为SpringMVC的虚拟目录了,当然,这里的名字完全依个人而定的。

注意:tomcat 5.5之后
不推荐在server.xml中进行配置,而是在/conf/context.xml中进行独立的配置。因为 server.xml 是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。而 context.xml文件则不然,tomcat服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器

1.3 增加虚拟主机

其实这才是本文要说的重点,也就是本文开头说的那种案例。每开发一个网站,都是通过http://localhost/WebName的形式访问,是不是很麻烦?

1.3.1 修改hosts文件,增加主机名

  1. Linux系统的hosts文件为/etc/hosts
  2. Windows系统的hosts文件为C:\WINDOWS\system32\drivers\etc\hosts
    比如你想增加www.local.com主机,则在此文件中增加一行:127.0.0.1 www.local.com,也就是说当你访问www.local.com时,其实是访问127.0.0.1
    如果比较喜欢简短的域名,可以增加:127.0.0.1 SpringMVC

1.3.2 修改配置文件

</Host>后再增加一个Host结点:

<Host name="SpringMVC" appBase="/var/www/webapp/SpringMVC" unpackWARs="true" autoDeploy="false" 
xmlValidation="false" xmlNamespaceAware="false" />

即增加了一个名为SpringMVC的虚拟主机,当然也可以是name="www.local.com",这个根据具体情况定。
这样,访问的IP就是:http://SpringMVC了。

1.3.3 目录设置

主机SpringMVCWEB文件全放在/var/www/webapp/SpringMVC目录下,在该目录下增加ROOT目录,放入JavaEE网站工程,这样,你就可以通过http://SpringMVC访问你的网站了,后面少了/SpringMVC这个字串,在IP上与运行环境保持了一致。

1.4 其它问题

通过http://SpringMVC访问的是SpringMVC网站;
通过http://localhost访问的是Tomcat自带的网站;
hosts文件中已经知道,SpringMVClocalhost都对应的IP是:127.0.0.1
那么,通过http://127.0.0.1访问的是那个网站呢?
Host的父节点是:<Engine name="Catalina" defaultHost="localhost">
从上可以看出,defaultHost="localhost"决定了127.0.0.1访问哪个网站,如果设置是访问SpringMVC就访问SpringMVC

1.5 server.xml文件

本文到此就要结束了,贴上server.xml文件内容:

<?xml version="1.0" encoding="utf-8" ?>
<Server port="8005" shutdown="SHUTDOWN"><Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /><Listener className="org.apache.catalina.core.JasperListener" /><Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /><Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /><GlobalNamingResources><Resource name="UserDatabase" auth="Container"type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved"factory="org.apache.catalina.users.MemoryUserDatabaseFactory"pathname="conf/tomcat-users.xml" /></GlobalNamingResources><Service name="Catalina"><Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /><Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /><Engine name="Catalina" defaultHost="SpringMVC"><Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" /><Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" 	xmlNamespaceAware="false"><!--HelloMule--><!--<Context path="/mule" docBase="/var/www/webapp/Mule"workDir="/var/www/webtemp/Mule" debug="5" reloadable="false"crossContext="true" />--></Host><Host name="SpringMVC" appBase="/var/www/webapp/SpringMVC"unpackWARs="true" autoDeploy="false" xmlValidation="false"xmlNamespaceAware="false" /></Engine></Service>
</Server>

这篇关于Tomcat的Server.xml虚拟主机和虚拟目录的配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名