tomcat下配置通过端口直接访问web应用
程序员文章站
2023-12-30 17:43:46
...
通常tomcat下的web应用都是使用http://localhost:8089/app1
这样的方式去访问的,但今天突然间觉得还要加一个应用名app1有点麻烦,有没有一种配置实现直接通过http://localhost:8089
接可以直接访问到app1呢,通过查阅资料找到相应配置的方法,现记录如下:
找到tomcat的conf/server.xml文件,在根节点<server></server>下有一个<service></service>节点,在这个节点中配置如下:
<Service name="Catalina">
<connector port="13082" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="app1" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"/>
</Host>
</Engine>
</Service>
其中:
1. <Service>的name属性是指定应用的名称
2. <connector>中的port属性是指定该应用访问的端口
3. <Host>中的name属性是配置该应用的访问域名,appBase是指定应用所在的父目录
4. <Context>中的属性是关键的配置,path指定应用访问的地址,实例中使用"/"是直接使用端口访问的,docBase指定应用的所在位置,例中使用的是相对位置,是appBase的子目录,即webapps下,当然也可以使用绝对路径
这样配置好后重启tomcat就可以通过http://localhost:8089
访问app1啦。
---____
题外:在一台物理机上可能启动了多个java应用,这时候想使用ps -ef | grep java
找对应的应用的pid时就不太方便了,这时候可以修改tomcat,bin/setclasspath.sh文件
#_RUNJAVA="$JRE_HOME"/bin/java
cp "$JRE_HOME/bin/java" "$JRE_HOME/bin/appname"
_RUNJAVA="$JRE_HOME/bin/appname"
将原有的_RUNJAVA="$JRE_HOME"/bin/java
注释掉
添加下面两行即可,在查找该tomcat进程号时候可以通过ps -ef | grep appname
进行查找。