linux 配置多个子域名映射到tomcat中不同项目

linux 配置多个子域名映射到tomcat中不同项目文件

1、进入tomcat下的根目录,进入到conf文件夹

2、使用vi编辑server.xml配置文件


3、更改端口号为80端口,那么访问项目可以不同输入端口号(tomcat默认端口号为8080)

直接查询port,使用vi的命令模式,使用/

吧8080改成80 就可以了

linux 配置多个子域名映射到tomcat中不同项目_第1张图片

linux 配置多个子域名映射到tomcat中不同项目_第2张图片

4、配置域名映射

使用vi的命令模式,使用/

5、配置域名指向的目录文件

linux 配置多个子域名映射到tomcat中不同项目_第3张图片

1)appBase=“”webapps”,这个不变;name设置成你想要的域名,比如www.baidu.com(这是不可能的,还是换成你自己的好,这里可以使用二级域名)

2)这是配置输出的日志文件的名称,为了以后方便维护查询错误,所以还是根据项目名称配置日志文件比较好

3)path其实可以不设置

4)主要是设置docBase,这个必须注意的是需要设置成绝对路径,是绝对路径,针对服务器跟目录下面的绝对路径,而不是相对webapps的相对路径,网上教程都没有指明这点,一直以为这是针对webapps下面的相对路径,所以一直出错,提示错误,搞得我折腾一天,终于测试出这是绝对路径,主要是对tomcat的原理不了解,放假回家好好补补tomcat的功课,买了一本tomcat开发技术详解,到现在还没看几页,,尴尬

错误信息如下

十二月 23, 2017 5:02:27 下午 org.apache.catalina.core.ContainerBase startInternal
严重: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[gwc-admin.heiyou.net].StandardContext[]]
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:939)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:890)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1404)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1394)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[gwc-admin.heiyou.net].StandardContext[]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
	... 6 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@317327b]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
	at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4842)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4974)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 6 more
Caused by: java.lang.IllegalArgumentException: The main resource set specified [/home/tomcat/apache-tomcat-8.5.8/webapps/webapps/admin] is not valid
	at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:732)
	at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:690)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 9 more





科普一下,appBase和docBase的区别

我们先看appBase,这个目录表示:
1 这个目录下面的子目录将自动被部署为应用。
2 这个目录下面的.war文件将被自动解压缩并部署为应用

而docBase只是指向了你某个应用的目录,这个可以和appBase没有任何关系。


所以如果你想自己指定路径,那么应该在docBase里面。


你可能感兴趣的:(服务器部署)