web服务之Tomcat
? ??Tomcat 服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web 應(yīng)用服務(wù)器,屬于輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。
示例 1:Tomcat的配置:
網(wǎng)站規(guī)劃:
網(wǎng)頁(yè)目錄:/web/www ? ?域名:www.test.com
論壇目錄:/web/bbs ? URL:www.test.com/bbs
?
方案部署:
1 準(zhǔn)備JDK環(huán)境:
[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中也需要配置虛擬主機(jī),server.xml是一個(gè)有標(biāo)簽組成的文本文件,找到默認(rèn)的<Host>標(biāo)簽,在此標(biāo)簽結(jié)尾,也就是</Host>后面增加如下虛擬主機(jī)配置:
<Host name="192.168.60.198" debug="0" appBase="/webdata/www" unpackWARs="true">
??? <Context path="" docBase="" debug="1"/>
</Host>
其中:
?name:指定虛擬主機(jī)名字,這里為了演示方便,用IP代替。
?debug:指定日志輸出級(jí)別
?appBase:存放Web應(yīng)用程序的基本目錄,可以是絕對(duì)路徑或相對(duì)于$CATALINA_HOME的目錄,默認(rèn)是$CATALINA_HOME/webapps。
?unpackWARs:如果為true,則tomcat會(huì)自動(dòng)將WAR文件解壓后運(yùn)行,否則不解壓而直接從WAR文件中運(yùn)行應(yīng)用程序。
?autoDeploy:如果為true,表示Tomcat啟動(dòng)時(shí)會(huì)自動(dòng)發(fā)布appBase目錄下所有的Web應(yīng)用(包括新加入的Web應(yīng)用)
?path:表示此Web應(yīng)用程序的url入口,如為“/jsp”,則請(qǐng)求的URL為http://localhost/jsp/
?docBase:指定此Web應(yīng)用的絕對(duì)或相對(duì)路徑,也可以為WAR文件的路徑。
這樣tomcat的虛擬主機(jī)就創(chuàng)建完成了。
轉(zhuǎn)載于:https://blog.51cto.com/zengwj1949/1936945
總結(jié)
以上是生活随笔為你收集整理的web服务之Tomcat的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NumPy基础入门学习
- 下一篇: YUV格式学习笔记