架构基础随心记七-tomcat

架构基础随心记七-tomcat

一、部署

1、部署jdk

1.1 将rpm包上传至/app/tools下
1.2 安装并查看是否安装成功



软件包会自动配置jdk的环境变量

2、部署tomcat

2.1 官网下载压缩包后解压


做个软连接

检查版本

启动


二、目录结构

bin 存放tomcat管理命令
conf 配置文件
lib 依赖与库文件
logs 日志
webapps 站点目录,存放war包
work 启动时会在目录下的work目录中生成一系列的文件夹和.java文件和编译后的.class文件

1、bin

startup.sh 启动脚本
shutdown.sh 关闭脚本
catalina.sh 核心脚本,配置tomcat优化,jvm优化

2、conf

server.xml tomcat配置文件
web.xml 配置文件,辅助配置

3、logs

catelina.out tomcat应用日志,启动加载、关闭、错误等信息
localhost_a***ess_log.xxx.txt 访问日志

三、运行代码

war包:将war包放在webapps目录,直接访问即可
jar包:
nohup java -jar -Dfile.encoding=UTF-8 项目路径 --server.port=8080 --project.home=/home/nginxWebUI/ > /dev/null &

四、server.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- ========== 根元素 Server ========== -->
<Server port="8005" shutdown="SHUTDOWN">
    <!--
        port: 关闭Tomcat的监听端口
        shutdown: 关闭指令字符串(建议修改默认值)
    -->

    <!-- ========== 全局监听器配置 ========== -->
    <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
    <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

    <!-- ========== 服务配置 Service ========== -->
    <Service name="Catalina">

        <!-- ===== 连接器配置 Connector (HTTP) ===== -->
        <Connector 
            port="8080" 
            protocol="HTTP/1.1"
            connectionTimeout="20000"
            redirectPort="8443"
            maxThreads="200" 
            minSpareThreads="10"
            enableLookups="false"
            a***eptCount="100"
            disableUploadTimeout="true"
            ***pression="on"
            ***pressionMinSize="2048"
            ***pressableMimeType="text/html,text/xml,text/css,application/javascript"
            URIEncoding="UTF-8">
            <!--
                port: 监听端口
                protocol: 协议类型
                connectionTimeout: 连接超时时间(ms)
                redirectPort: SSL重定向端口
                maxThreads: 最大线程数
                minSpareThreads: 最小空闲线程
                enableLookups: 禁用DNS反向查询
                a***eptCount: 等待队列长度
                disableUploadTimeout: 上传文件不限时
                ***pression: 启用压缩
                URIEncoding: URL编码格式
            -->
        </Connector>

        <!-- ===== 连接器配置 Connector (AJP) ===== -->
        <Connector 
            port="8009" 
            protocol="AJP/1.3" 
            redirectPort="8443" 
            secretRequired="false"/>

        <!-- ===== SSL配置示例 ===== -->
        <!--
        <Connector 
            port="8443" 
            protocol="org.apache.coyote.http11.Http11NioProtocol"
            maxThreads="150" 
            SSLEnabled="true">
            <SSLHostConfig>
                <Certificate 
                    certificateKeystoreFile="conf/keystore.jks"
                    certificateKeystorePassword="changeit"
                    type="RSA" />
            </SSLHostConfig>
        </Connector>
        -->

        <!-- ========== 引擎配置 Engine ========== -->
        <Engine name="Catalina" defaultHost="localhost">
            <!--
                name: 引擎名称
                defaultHost: 默认虚拟主机
            -->

            <!-- ===== 集群配置示例 ===== -->
            <!--
            <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
            -->

            <!-- ========== 主机配置 Host ========== -->
            <Host name="localhost"  
                  appBase="webapps"
                  unpackWARs="true" 
                  autoDeploy="true">
                <!--
                    name: 虚拟主机域名
                    appBase: 应用部署目录
                    unpackWARs: 自动解压WAR包
                    autoDeploy: 自动部署
                -->

                <!-- ===== 上下文配置 Context ===== -->
                <Context 
                    path="" 
                    docBase="myapp" 
                    reloadable="true" 
                    crossContext="true">
                    <!--
                        path: 访问路径(空表示根路径)
                        docBase: 应用目录名称
                        reloadable: 开发模式热加载
                    -->
                </Context>

                <!-- ===== 访问日志配置 ===== -->
                <Valve className="org.apache.catalina.valves.A***essLogValve" 
                       directory="logs"
                       prefix="localhost_a***ess_log" 
                       suffix=".txt"
                       pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            </Host>
        </Engine>
    </Service>
</Server>

修改访问日志格式

<Valve className="org.apache.catalina.valves.A***essLogValve" 
                       directory="logs"
                       prefix="localhost_a***ess_log" 
                       suffix=".txt"
                       pattern="%h %l %u %t &quot;%r&quot; %s %b &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot; &quot;%{X-Forwarded-For}i&quot;" />

五、监控功能

通过各种监控工具(Zabbix/Prometheus)监控tomcat/java需要开启远程监控功能(JMX)
在配置中修改tomcat启动的选项,开启监控功能

vim catelina.sh

CATALINA_OPTS="$CATALINA_OPTS   \
-D***.sun.management.jmxremote \ # 开启监控功能
-D***.sun.management.jmxremote.port=12345 \  # 指定端口
-D***.sun.management.jmxremote.authenticate=false \  # 关闭认证功能
-D***.sun.management.jmxremote.ssl=false \ # 关闭ssl加密功能
-Djava.rmi.server.hostname=192.168.228.7"  # 网卡ip,监听的地址

六、配置https

阿里云ssl配置文档

强制http转https

在web.xml文件</wel***e-file-list>后添加以下内容

    <login-config>
	  <!-- Authorization setting for SSL -->
		<auth-method>CLIENT-CERT</auth-method>
		<realm-name>Client Cert Users-only Area</realm-name>
	</login-config>

	<security-constraint>
	  <!-- Authorization setting for SSL -->
		<web-resource-collection >
			<web-resource-name >SSL</web-resource-name>
			<url-pattern>/*</url-pattern>
		</web-resource-collection>
		<user-data-constraint>
			<transport-guarantee>CONFIDENTIAL</transport-guarantee>
		</user-data-constraint>
	</security-constraint>
转载请说明出处内容投诉
CSS教程网 » 架构基础随心记七-tomcat

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买