什麼是完美的 tomcat 虛擬化設定檔?

什麼是完美的 tomcat 虛擬化設定檔?

我在 nginx 後面管理 tomcat 伺服器。 Tomcat 中有多個 Web 應用程式。我的作業系統是 Digital Ocean 上的 Ubuntu 18.04LTS。

一切正常,但突然出現了一個問題。 Tomcat 運作正常,但 web 應用程式無法運作!在伺服器日誌中,它顯示了庫丟失,但它仍然存在。

那麼,有人建議我有什麼問題嗎?

或者有人請向我建議完美/生產等級server.xmltomcat8.service設定檔。

伺服器.xml- 虛擬網路應用程式之一

  <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.service

[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

在此輸入影像描述

PS:我在這裡有過很多次非常糟糕的經歷(< 5000 名聲譽良好的人)。如果你不想回答請離開。不要發布諸如聯繫專業人士之類的答案。我有一個問題,所以經過良好的研究工作後,我在這裡發布我的問題。

編輯1:我之前忘記提到的另一件事 - 我正在通過 部署新東西gitlab runner,然後僅在重新加載後webapps。不重新啟動tomcat服務。對於重新加載webapps,我在context.xml文件中提到。

答案1

在應用程式啟動期間,Tomcat 會掃描(在 Debianoid 上)(通常如果您只有一個 Tomcat 正在運行)和每個應用程式資料夾中的所有*.jar檔案。$CATALINA_HOME/lib/usr/share/tomcat8/lib$CATALINA_BASE/lib/var/lib/tomcat8/libWEB-INF/lib

您的日誌表明/var/lib/tomcat8/lib/lib(原文如此!)中有一些可以列出但無法打開的 jar 檔案。我的猜測是:這些是一些懸掛的符號鏈接,是您在安裝過程中無意添加的。

筆記:除了某些 JDBC 驅動程式和類似驅動程式之外,您的應用程式不需要任何$CATALINA_BASE/lib.

相關內容