tomcat的基础配置

tomcat基础配置

tomcat安装生成的文件中找不到主程序
[root@centos7 ~]# rpm -ql tomcat
/etc/logrotate.d/tomcat
/etc/sysconfig/tomcat
/etc/tomcat
/etc/tomcat/Catalina
/etc/tomcat/Catalina/localhost
/etc/tomcat/catalina.policy
/etc/tomcat/catalina.properties
/etc/tomcat/conf.d
/etc/tomcat/conf.d/README
/etc/tomcat/context.xml
/etc/tomcat/log4j.properties
/etc/tomcat/logging.properties
/etc/tomcat/server.xml   主配置文件
/etc/tomcat/tomcat-users.xml
/etc/tomcat/tomcat.conf
/etc/tomcat/web.xml
/usr/bin/tomcat-digest
/usr/bin/tomcat-tool-wrapper
/usr/lib/systemd/system/tomcat.service
/usr/lib/systemd/system/tomcat@.service
/usr/libexec/tomcat
/usr/libexec/tomcat/functions
/usr/libexec/tomcat/preamble
/usr/libexec/tomcat/server
/usr/sbin/tomcat   这个并非正真意义上的主程序;对tomcat而言他的主程序是Java语言的类文件
/usr/share/doc/tomcat-7.0.69
/usr/share/doc/tomcat-7.0.69/LICENSE
/usr/share/doc/tomcat-7.0.69/NOTICE
/usr/share/doc/tomcat-7.0.69/RELEASE-NOTES
/usr/share/tomcat
/usr/share/tomcat/bin/bootstrap.jar  启动tomcat靠的是这个
/usr/share/tomcat/bin/catalina-tasks.xml
/usr/share/tomcat/conf
/usr/share/tomcat/lib
/usr/share/tomcat/logs
/usr/share/tomcat/temp
/usr/share/tomcat/webapps
/usr/share/tomcat/work
/var/cache/tomcat
/var/cache/tomcat/temp
/var/cache/tomcat/work
/var/lib/tomcat
/var/lib/tomcat/webapps
/var/lib/tomcats
/var/log/tomcat
/var/log/tomcat/catalina.out
配置文件的解释
[root@centos7 tomcat]# 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">   #最外测组件是server
  <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" />
  <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
  <Listener className="org.apache.catalina.core.JasperListener" />
  <!-- 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">  核心组件叫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 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 HTTP/1.1 Connector on port 8443
         This connector uses the BIO 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.Http11Protocol"
               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="localhost">

      <!--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="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="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" />最后还有一个valve组件叫阀门是让我们来定义各种常见的功能的;访问控制;访问记录等;className=某值表示我们使用某类,项类赋值就实例出一个一个的对象;这里指定以了一个访问日志类

      </Host>
    </Engine>
  </Service>
</Server>

        Tomcat的核心组件:server.xml
            <Server>
                <Service>
                    <connector/>
                    <connector/>
                    ...
                    <Engine>
                        <Host>
                            <Context/>
                            <Context/>
                            ...
                        </Host>
                        <Host>
                            ...
                        </Host>
                        ...
                    </Engine>
                </Service>
            </Server>
tomcat的配置文件构成:
            server.xml:主配置文件;
            web.xml:每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置;
            context.xml:每个webapp都可以专用的配置文件,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置;
            tomcat-users.xml:用户认证的账号和密码文件;角色(role),用户(User)此文件在tomcat的启动时被装载制内存中
            catalina.policy:当使用-security选项启动tomcat时,用于为tomcat设置安全策略; 
            catalina.properties:Java属性的定义文件,用于设定类加载器路径,以及一些与JVM调优相关参数;
            logging.properties:日志系统相关的配置;
JSP WebAPP的组织结构:
            /: webapps的根目录
                index.jsp:主页;
                WEB-INF/:当前webapp的私有资源路径;通常用于存储当前webapp的web.xml和context.xml配置文件;
                META-INF/:类似于WEB-INF/;
                classes/:类文件,当前webapp所提供的类;
                lib/:类文件,当前webapp所提供的类,被打包为jar格式; 
webapp归档格式:
            .war:webapp
            .jar:EJB的类打包文件;
            .rar:资源适配器类打包文件;
            .ear:企业级webapp;
每一个组件都由一个Java“类”实现,这些组件大体可分为以下几个类型:
                顶级组件:Server
                服务类组件:Service
                连接器组件:http, https, ajp(apache jserv protocol)
                容器类:Engine, Host, Context
                被嵌套类:valve, logger, realm, loader, manager, ...
                集群类组件:listener, cluster, ...
部署(deploy)webapp的相关操作:
        deploy:将webapp的源文件放置于目标目录(网页程序文件存放目录),配置tomcat服务器能够基于web.xml和context.xml文件中定义的路径来访问此webapp;将其特有的类和依赖的类通过class loader装载至JVM;
            部署有两种方式:
                自动部署:auto deploy
                手动部署:
                    冷部署:把webapp复制到指定的位置,而后才启动tomcat;
                    热部署:在不停止tomcat的前提下进行部署;
                        部署工具:manager 、ant脚本、tcd(tomcat client deployer)等;
undeploy:反部署,停止webapp,并从tomcat实例上卸载webapp;
        start:启动处于停止状态的webapp;
        stop:停止webapp,不再向用户提供服务;其类依然在jvm上;
        redeploy:重新部署;
冷部署测试;
[root@centos7 tomcat]# systemctl stop tomcat.service 停止服务

[root@centos7 tomcat]# mkdir -pv  /usr/local/tomcat/webapps/test/{classes,lib,WEB-INF}   创建目录
mkdir: created directory ‘/usr/local/tomcat’
mkdir: created directory ‘/usr/local/tomcat/webapps’
mkdir: created directory ‘/usr/local/tomcat/webapps/test’
mkdir: created directory ‘/usr/local/tomcat/webapps/test/classes’
mkdir: created directory ‘/usr/local/tomcat/webapps/test/lib’
mkdir: created directory ‘/usr/local/tomcat/webapps/test/WEB-INF’
[root@centos7 tomcat]# cd /usr/local/tomcat/webapps/test/ 切到目录
[root@centos7 test]# vi index.jsp
<%@ page language="java" %>
                        <%@ page import="java.util.*" %>
                        <html>
                                <head>
                                        <title>Test Page</title>
                                </head>
                                <body>
                                        <% out.println("hello world");
                                        %>
                                </body>
                        </html>

默认网页根路径
/usr/share/tomcat/webapps/
chown -R tomcat.tomcat test/*

客户端测试


查看经由Java编译后的代码
[root@centos7 test]# ls /usr/share/tomcat/work/Catalina/localhost/test/org/apache/jsp/
index_jsp.class编译后的结果  index_jsp.java 代码转换后的结果
修改配置文档
[root@centos7 tomcat]# cat tomcat-users.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.
-->
<tomcat-users>
<!--
  NOTE:  By default, no user is included in the "manager-gui" role required
  to operate the "/manager/html" web application.  If you wish to use this app,
  you must define such a user - the username and password are arbitrary. It is
  strongly recommended that you do NOT use one of the users in the commented out
  section below since they are intended for use with the examples web
  application.
-->
<!--
  NOTE:  The sample user and role entries below are intended for use with the
  examples web application. They are wrapped in a comment and thus are ignored
  when reading this file. If you wish to configure these users for use with the
  examples web application, do not forget to remove the <!.. ..> that surrounds
  them. You will also need to set the passwords to something appropriate.
-->
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
<role rolenam="manager-gui"/> 定义一个组
<user username="chenxi" password="123.com" roles="manager-gui"/> 创建一个用户
<!-- <role rolename="admin"/> -->
<!-- <role rolename="admin-gui"/> -->
<!-- <role rolename="admin-script"/> -->
<!-- <role rolename="manager"/> -->
<!-- <role rolename="manager-gui"/> -->
<!-- <role rolename="manager-script"/> -->
<!-- <role rolename="manager-jmx"/> -->
<!-- <role rolename="manager-status"/> -->
<!-- <user name="admin" password="adminadmin" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,mana
ger-jmx,manager-status" /> --></tomcat-users>
保存退出
 systemctl restart tomcat.service
下载solo程序
移到网页根目录
cd /var/lib/tomcat/webapps/
 mv  test/solo-2.2.0.war .
之后
cd solo-2.2.0/
0.0

输入用户及密码



这里也可以停止应用程序点击stop 启动start



之后根据提示做出注册

这里还可以根据URLdeploy下载应用程序;这是个热部署工具



下面有主机的相关信息


连接数的介绍



jvm的设置显示

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容