Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
示例 1:Tomcat的配置:
网站规划:
网页目录:/web/www 域名:www.test.com
论坛目录:/web/bbs URL:www.test.com/bbs
方案部署:
1 准备JDK环境:
[zwj01@localhost local]$ sudo tar -zxf jdk-8u131-linux-x64.gz -C /usr/local/
[zwj01@localhost local]$ sudo ln -s /usr/local/jdk1.8.0_131/ /usr/local/jdk1.8
[zwj01@localhost local]$ sudo vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
[zwj01@localhost local]$ source /etc/profile
[zwj01@localhost local]$ java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
2 Tomcat配置:
[zwj01@localhost src]$ sudo wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.0.44/bin/apache-tomcat-8.0.44.tar.gz
[zwj01@localhost src]$ sudo tar -zxf apache-tomcat-8.0.44.tar.gz -C /usr/local/
[zwj01@localhost local]$ sudo ln -s /usr/local/apache-tomcat-8.0.44 tomcat8.0
[zwj01@localhost ~]$ sudo useradd tomcat
[zwj01@localhost ~]$ sudo passwd tomcat
[zwj01@localhost ~]$ sudo chown -R tomcat.tomcat /usr/local/tomcat8.0/
[zwj01@localhost tomcat8.0]$ sudo vim /etc/profile
export CATALINA_HOME=/usr/local/tomcat8.0
[zwj01@localhost tomcat8.0]$ source /etc/profile
[zwj01@localhost ~]$ su -l tomcat
[tomcat@localhost ~]$ /usr/local/tomcat8.0/bin/startup.sh
[tomcat@localhost ~]$ lsof -i :8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 3058 tomcat 47u IPv6 29317 0t0 TCP *:webcache (LISTEN)
修改主配置文件(绿色背景为修改后的配置),
[tomcat@localhost tomcat8.0]$ cd /usr/local/tomcat8.0/conf
[tomcat@localhost conf]$ vim server.xml
<?xml version='1.0' encoding='utf-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" at this level.
Documentation at /docs/config/server.html
-->
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
-->
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<!-- Global JNDI resources
Documentation at /docs/jndi-resources-howto.html
-->
<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<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>
<!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" Note: A "Service" is not itself a "Container",
so you may not define subcomponents such as "Valves" at this level.
Documentation at /docs/config/service.html
-->
<Service name="Catalina">
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<!--
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
-->
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- A "Connector" using the shared thread pool-->
<!--
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
-->
<!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
This connector uses the NIO implementation that requires the JSSE
style configuration. When using the APR/native implementation, the
OpenSSL style configuration is required as described in the APR/native
documentation -->
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
<!-- Define an AJP 1.3 Connector on port 8009 -->
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host).
Documentation at /docs/config/engine.html -->
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="test.com">
<!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="www.test.com" appBase="/web"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="www/" reloadable="true" />
<Context path="/bbs" docBase="/web/bbs/" reloadable="true" />
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<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>
</Server>
[tomcat@localhost web]$ mkdir -pv /web/{www,bbs}
[tomcat@localhost web]$ tree /web
/web
├── bbs
│ └── index.html
└── www
└── index.jsp
[tomcat@localhost www]$ /usr/local/tomcat8.0/bin/shutdown.sh
[tomcat@localhost www]$ /usr/local/tomcat8.0/bin/startup.sh
[tomcat@localhost conf]$ lsof -i :8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 4278 tomcat 47u IPv6 58195 0t0 TCP *:webcache (LISTEN)
附:
server.xml的配置
server.xml是tomcat的核心配置文件,在tomcat中也需要配置虚拟主机,server.xml是一个有标签组成的文本文件,找到默认的<Host>标签,在此标签结尾,也就是</Host>后面增加如下虚拟主机配置:
<Host name="192.168.60.198" debug="0" appBase="/webdata/www" unpackWARs="true">
<Context path="" docBase="" debug="1"/>
</Host>
其中:
name:指定虚拟主机名字,这里为了演示方便,用IP代替。
debug:指定日志输出级别
appBase:存放Web应用程序的基本目录,可以是绝对路径或相对于$CATALINA_HOME的目录,默认是$CATALINA_HOME/webapps。
unpackWARs:如果为true,则tomcat会自动将WAR文件解压后运行,否则不解压而直接从WAR文件中运行应用程序。
autoDeploy:如果为true,表示Tomcat启动时会自动发布appBase目录下所有的Web应用(包括新加入的Web应用)
path:表示此Web应用程序的url入口,如为“/jsp”,则请求的URL为http://localhost/jsp/
docBase:指定此Web应用的绝对或相对路径,也可以为WAR文件的路径。
这样tomcat的虚拟主机就创建完成了。