如何在Tomcat 9/8中创建虚拟主机

时间:2019-05-19 01:25:50  来源:igfitidea点击:

什么是虚拟主机?

虚拟主机(Virtual Host)让我们可以在一台服务器上托管多个域名(网站)。
它是在多个主机帐户之间共享资源的概念。
虚拟主机的最佳用途是共享主机服务器,即多个用户可以在一台服务器上托管多个网站。

设置信息

我们已经为Tomcat托管服务创建了一个IP为192.168.1.100的Linux服务器。
并配置为在端口80上运行。
然后,我们使用tomcat管理面板在tomcat上部署了两个java web应用程序。
现在两个应用程序都在以下url上运行

http://192.168.1.100/myapp1
http://192.168.1.100/myapp2

现在我们想在主域名上运行两个web应用程序,比如example.com和mydomain.org。
这样终端用户就可以使用主域名访问web应用程序。

在Tomcat中创建虚拟主机

要在Tomcat中创建虚拟主机,首先,导航到Tomcat安装目录并编辑config/server.xmlconf/server.xml文件。
然后为应用程序创建虚拟主机。
以下虚拟主机包括:
第一个应用程序 域名为example.com, 文档根目录: /opt/tomcat/webapps/myapp1。
第二个应用程序 域名为mydomain.org 文档根目录: /opt/tomcat/webapps/myapp2。

<Host name="example.com"  appBase="webapps" unpackWARs="true" autoDeploy="true">
	<Alias>www.example.com</Alias>

	<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="example_access_log" suffix=".txt"
           pattern="%h %l %u %t %r %s %b" />

	<Context path="" docBase="/opt/tomcat/webapps/myapp1"
		   debug="0" reloadable="true"/>
</Host>


<Host name="mydomain.org"  appBase="webapps" unpackWARs="true" autoDeploy="true">
	<Alias>www.mydomain.org</Alias>

	<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="mydomain_access_log" suffix=".txt"
           pattern="%h %l %u %t %r %s %b" />

	<Context path="" docBase="/opt/tomcat/webapps/myapp2"
		   debug="0" reloadable="true"/>
</Host>

重启Tomcat服务

在Tomcat中添加虚拟主机后,需要重新启动Tomcat服务。
使用Tomcat init服务重新启动它,如果我们不必为Tomcat init服务,请从Tomcat安装目录执行以下命令。

./bin/shutdown.sh
./bin/startup.sh