天天看點

web服務之Tomcat

示例 1:Tomcat的配置:

網站規劃:

論壇目錄:/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 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"

    <!-- 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 -->

    <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

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應用)

 docBase:指定此Web應用的絕對或相對路徑,也可以為WAR檔案的路徑。

這樣tomcat的虛拟主機就建立完成了。

本文轉自 zengwj1949 51CTO部落格,原文連結:http://blog.51cto.com/zengwj1949/1936945