什么是完美的 tomcat 虚拟化配置文件?

什么是完美的 tomcat 虚拟化配置文件?

我在 nginx 后面管理 tomcat 服务器。tomcat 中有多个 webapp。我的操作系统是 Digital Ocean 上的 Ubuntu 18.04LTS。

一切正常,但突然出现一个问题。Tomcat 运行正常,但 webapps 无法运行!服务器日志中显示缺少库,但库仍然存在。

那么,有人可以告诉我问题出在哪里吗?

或者有人请向我建议完美/生产级别server.xmltomcat8.service配置文件。

服务器.xml- 虚拟 Web 应用程序之一

  <Service name="tm_xxx">
    <Connector port="7072" maxHttpHeaderSize="7192"
        maxThreads="1000" minSpareThreads="45" maxSpareThreads="100"
        enableLookups="false" redirectPort="9443" acceptCount="100"
        connectionTimeout="20000" disableUploadTimeout="true" />
        <Connector port="7172"
        enableLookups="false" redirectPort="9043" protocol="AJP/1.3" />

    <Engine name="tm_LB2" defaultHost="localhost">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
            resourceName="UserDatabase"/>
            <Host name="localhost" appBase="tm_xxx"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
                <Valve className="org.apache.catalina.valves.ErrorReportValve"
                    showReport="false"
                    showServerInfo="false" />
            </Host>
    </Engine>
</Service>
                                                                                   

tomcat8.服务

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/init.d/tomcat8
Description=LSB: Start Tomcat.
Before=multi-user.target
Before=multi-user.target
Before=multi-user.target
Before=graphical.target
After=remote-fs.target
After=network-online.target
After=nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
Restart=always
RestartUSec=50ms
TimeoutStartSec=1min
TimeoutStopSec=1min
TimeoutSec=1min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
SuccessExitStatus=5 6
ExecStart=/etc/init.d/tomcat8 start
ExecStop=/etc/init.d/tomcat8 stop

SS 表示错误catlina.out

在此处输入图片描述

附言:我在这里有过很多次非常糟糕的经历(<5000 名声誉良好的人)。如果你不想回答,请离开。不要发布像联系专业人士或这样的答案。我有一个问题,所以,经过充分的研究工作,我在这里发布了我的问题。

编辑 1:还有一件事我之前忘了提 - 我通过部署新东西gitlab runner,然后只是重新加载webapps。不重新启动 tomcat 服务。对于重新加载webapps,我在context.xml文件中提到。

答案1

在应用程序启动期间,Tomcat 会扫描(在 Debianoids 上)*.jar中的所有文件(通常如果您只运行一个 Tomcat)以及每个应用程序文件夹中的所有文件。$CATALINA_HOME/lib/usr/share/tomcat8/lib$CATALINA_BASE/lib/var/lib/tomcat8/libWEB-INF/lib

您的日志表明您有一些 jar 文件/var/lib/tomcat8/lib/lib(原文如此!)可以列出,但无法打开。我的猜测是:这些是一些悬空的符号链接,是您在安装过程中无意中添加的。

笔记:除了一些 JDBC 驱动程序和类似驱动程序之外,您的应用程序不需要任何文件$CATALINA_BASE/lib

相关内容