Megosztás a következőn keresztül:


Tomcat-, JBoss- vagy Java SE-alkalmazás üzembe helyezése és konfigurálása Azure-alkalmazás Szolgáltatásban

Ez a cikk bemutatja a Java-alkalmazások leggyakoribb üzembe helyezési és futtatókörnyezeti konfigurációját az App Service-ben. Ha még soha nem használta Azure-alkalmazás szolgáltatást, először olvassa el a Java rövid útmutatóját. A Java-fejlesztésre nem jellemző App Service használatával kapcsolatos általános kérdésekre az App Service gyakori kérdéseiben talál választ.

Azure-alkalmazás szolgáltatás Java-webalkalmazásokat futtat egy teljes körűen felügyelt szolgáltatáson három változatban:

  • Java SE – Futtathat egy JAR-csomagként üzembe helyezett alkalmazást, amely beágyazott kiszolgálót (például Spring Bootot, Dropwizardot, Quarkust vagy beágyazott Tomcat- vagy Jetty-kiszolgálót) tartalmaz.
  • Tomcat – A beépített Tomcat-kiszolgáló futtathat egy WAR-csomagként üzembe helyezett alkalmazást.
  • JBoss EAP – Csak a Prémium v3 és az Izolált v2 tarifacsomagokban támogatott Linux-alkalmazások. A beépített JBoss EAP-kiszolgáló futtathat egy WAR- vagy EAR-csomagként üzembe helyezett alkalmazást.

Feljegyzés

Spring-alkalmazások esetén az Azure Spring Apps használatát javasoljuk. Azonban továbbra is használhatja a Azure-alkalmazás szolgáltatást célként. Tanácsért tekintse meg a Java számítási feladatok célhelyének útmutatását .

Java-verzió megjelenítése

Az aktuális Java-verzió megjelenítéséhez futtassa a következő parancsot a Cloud Shellben:

az webapp config show --resource-group <resource-group-name> --name <app-name> --query linuxFxVersion

Az összes támogatott Java-verzió megjelenítéséhez futtassa a következő parancsot a Cloud Shellben:

az webapp list-runtimes --os linux | grep "JAVA\|TOMCAT\|JBOSSEAP"

A verziótámogatásról további információt az App Service nyelvi futtatókörnyezet támogatási szabályzatában talál.

Az alkalmazás üzembe helyezése

Buildkészítő eszközök

Maven

Az Azure Web AppsHez készült Maven beépülő modullal egyszerűen előkészítheti a Maven Java-projektet az Azure Web Apphoz egy paranccsal a projekt gyökérkönyvtárában:

mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:config

Ez a parancs beépülő modult azure-webapp-maven-plugin és kapcsolódó konfigurációt ad hozzá, és megkéri, hogy válasszon ki egy meglévő Azure-webalkalmazást, vagy hozzon létre egy újat. A konfiguráció során megpróbálja észlelni, hogy az alkalmazást telepíteni kell-e a Java SE-ben, a Tomcatben vagy (csak Linuxon) a JBoss EAP-ben. Ezután a Következő paranccsal telepítheti a Java-alkalmazást az Azure-ban:

mvn package azure-webapp:deploy

Íme egy mintakonfiguráció a következőben pom.xml:

<plugin> 
  <groupId>com.microsoft.azure</groupId>  
  <artifactId>azure-webapp-maven-plugin</artifactId>  
  <version>2.11.0</version>  
  <configuration>
    <subscriptionId>111111-11111-11111-1111111</subscriptionId>
    <resourceGroup>spring-boot-xxxxxxxxxx-rg</resourceGroup>
    <appName>spring-boot-xxxxxxxxxx</appName>
    <pricingTier>B2</pricingTier>
    <region>westus</region>
    <runtime>
      <os>Linux</os>      
      <webContainer>Java SE</webContainer>
      <javaVersion>Java 17</javaVersion>
    </runtime>
    <deployment>
      <resources>
        <resource>
          <type>jar</type>
          <directory>${project.basedir}/target</directory>
          <includes>
            <include>*.jar</include>
          </includes>
        </resource>
      </resources>
    </deployment>
  </configuration>
</plugin> 

Gradle

  1. Az Azure Web Apps Gradle beépülő moduljának beállításához adja hozzá a beépülő modult a következőhözbuild.gradle:

    plugins {
      id "com.microsoft.azure.azurewebapp" version "1.10.0"
    }
    
  2. Konfigurálja a webalkalmazás adatait. A megfelelő Azure-erőforrások akkor jönnek létre, ha nem léteznek. A részletekért tekintse meg ezt a dokumentumot egy mintakonfigurációban.

    azurewebapp {
        subscription = '<your subscription id>'
        resourceGroup = '<your resource group>'
        appName = '<your app name>'
        pricingTier = '<price tier like 'P1v2'>'
        region = '<region like 'westus'>'
        runtime {
          os = 'Linux'
          webContainer = 'Tomcat 10.0' // or 'Java SE' if you want to run an executable jar
          javaVersion = 'Java 17'
        }
        appSettings {
            <key> = <value>
        }
        auth {
            type = 'azure_cli' // support azure_cli, oauth2, device_code and service_principal
        }
    }
    
  3. Üzembe helyezés egyetlen paranccsal.

    gradle azureWebAppDeploy
    

Integrált fejlesztőkörnyezetek

Az Azure zökkenőmentes Java App Service-fejlesztési élményt nyújt a népszerű Java-azonosítókban, többek között a következőket:

Kudu API

Ha .jar fájlokat szeretne üzembe helyezni a Java SE-ben, használja a /api/publish Kudu-webhely végpontját. Az API-val kapcsolatos további információkért tekintse meg ezt a dokumentációt.

Feljegyzés

Az alkalmazás azonosításához és futtatásához a .jar alkalmazás nevét az App Service-nek kell neveznie app.jar . A Maven beépülő modul ezt automatikusan elvégzi Az üzembe helyezés során. Ha nem szeretné átnevezni a JAR-t app.jar, feltölthet egy rendszerhéjszkriptet a parancs használatával a .jar alkalmazás futtatásához. Illessze be a szkript abszolút elérési útját az Indítási fájl szövegmezőbe a portál Konfiguráció szakaszában. Az indítási szkript nem abból a könyvtárból fut, ahová az el lett helyezve. Ezért mindig abszolút elérési utakat használjon az indítási szkriptben található fájlokra való hivatkozáskor (például: java -jar /home/myapp/myapp.jar).

A .war-fájlok Tomcatben való üzembe helyezéséhez használja a /api/wardeploy/ végpontot az archív fájl POST-fájljának közzétételéhez. Az API-val kapcsolatos további információkért tekintse meg ezt a dokumentációt.

A .war-fájlok JBoss-fájlban való üzembe helyezéséhez használja a végpontot az /api/wardeploy/ archív fájl postázásához. Az API-val kapcsolatos további információkért tekintse meg ezt a dokumentációt.

A .ear-fájlok telepítéséhez használja az FTP-t. A .ear-alkalmazás az alkalmazás konfigurációjában meghatározott környezetgyökérre van üzembe helyezve. Ha például az alkalmazás környezetgyökere, <context-root>myapp</context-root>akkor az elérési úton tallózhat a /myapp webhelyen: http://my-app-name.azurewebsites.net/myapp. Ha azt szeretné, hogy a webalkalmazás a gyökérútvonalon legyen kiszolgálva, győződjön meg arról, hogy az alkalmazás a gyökér elérési útjára állítja a környezet gyökerét: <context-root>/</context-root>. További információ: A webalkalmazás környezetgyökerének beállítása.

Ne helyezze üzembe a .war vagy .jar FTP használatával. Az FTP-eszköz indítási szkriptek, függőségek vagy más futtatókörnyezeti fájlok feltöltésére lett kialakítva. Nem ez az optimális választás a webalkalmazások üzembe helyezéséhez.

URL-cím átírása vagy átirányítása

Az URL-cím átírásához vagy átirányításához használja az egyik elérhető URL-írót, például az UrlRewriteFiltert.

A Tomcat egy újraírási szelepet is biztosít.

A JBoss egy újraírási szelepet is biztosít.

Alkalmazások naplózása és hibakeresése

A teljesítményjelentések, a forgalmi vizualizációk és az állapotellenőrzések minden alkalmazáshoz elérhetők az Azure Portalon keresztül. További információ: Azure-alkalmazás Szolgáltatásdiagnosztika áttekintése.

Diagnosztikai naplók streamelése

A tárolón belülről létrehozott konzolnaplókhoz hozzáférhet.

Először kapcsolja be a tárolónaplózást a következő parancs futtatásával:

az webapp log config --name <app-name> --resource-group <resource-group-name> --docker-container-logging filesystem

Cserélje le és <resource-group-name> írja be <app-name> a webalkalmazásnak megfelelő neveket.

A tárolónaplózás bekapcsolása után futtassa a következő parancsot a naplóstream megtekintéséhez:

az webapp log tail --name <app-name> --resource-group <resource-group-name>

Ha nem jelennek meg azonnal a konzolnaplófájlok, ellenőrizze ismét 30 másodperc múlva.

Ha bármikor le szeretné állítani a naplóstreamelést, írja be a Ctrl C billentyűkombinációt.+

A naplófájlokat a böngészőben is megvizsgálhatja a következő helyen https://<app-name>.scm.azurewebsites.net/api/logs/docker: .

További információ: Streamnaplók a Cloud Shellben.

SSH-konzolhozzáférés Linuxon

Ahhoz, hogy közvetlen SSH-munkamenetet nyisson meg a tárolóval, az alkalmazásának futnia kell.

Illessze be a következő URL-címet a böngészőbe, és cserélje le az <app-name> kifejezést az alkalmazása nevére:

https://<app-name>.scm.azurewebsites.net/webssh/host

Ha még nem végezte el a hitelesítést, a csatlakozáshoz el kell végeznie a hitelesítést az Azure-előfizetésével. A hitelesítés után egy böngészőn belüli felület jelenik meg, ahol a tárolón belül futtathat parancsokat.

SSH-kapcsolat

Feljegyzés

A rendszer a /home könyvtáron kívül elvégzett módosításokat magában a tárolóban helyezi el, és ezek nem maradnak meg az alkalmazás újraindítása után.

Ha távoli SSH-munkamenetet szeretne megnyitni a helyi gépről, tekintse meg az SSH-munkamenet távoli rendszerhéjból történő megnyitásával foglalkozó témakört.

Linux hibaelhárító eszközök

A beépített Java-rendszerképek az Alpine Linux operációs rendszeren alapulnak. A csomagkezelővel telepítheti a apk hibaelhárítási eszközöket vagy parancsokat.

Java Profiler

Az Azure-alkalmazás szolgáltatás összes Java-futtatókörnyezete a JDK Flight Recorder-et használja a Java-számítási feladatok profilozásához. Segítségével JVM-, rendszer- és alkalmazáseseményeket rögzíthet, és elháríthatja az alkalmazásokkal kapcsolatos problémákat.

A Java Profilerről további információt a Azure-alkalmazás Insights dokumentációjában talál.

Flight Recorder

Az App Service összes Java-futtatókörnyezete a Java Flight Recordert használja. Segítségével JVM-, rendszer- és alkalmazáseseményeket rögzíthet, és elháríthatja a Java-alkalmazások problémáit.

SSH-t az App Service-be, és futtassa a parancsot az jcmd összes futó Java-folyamat listájának megtekintéséhez. A jcmd mellett látnia kell, hogy a Java-alkalmazás egy folyamatazonosító számmal (pid) fut.

078990bbcd11:/home# jcmd
Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true
147 sun.tools.jcmd.JCmd
116 /home/site/wwwroot/app.jar

Hajtsa végre a következő parancsot a JVM 30 másodperces felvételének elindításához. Profilt készít a JVM-ről, és létrehoz egy jfr_example.jfr nevű JFR-fájlt a kezdőkönyvtárban. (Cserélje le a 116-ot a Java-alkalmazás pidjára.)

jcmd 116 JFR.start name=MyRecording settings=profile duration=30s filename="/home/jfr_example.jfr"

A 30 másodperces időköz alatt ellenőrizheti, hogy a felvétel folyamatban jcmd 116 JFR.checkvan-e. A parancs az adott Java-folyamat összes felvételét megjeleníti.

Folyamatos rögzítés

A Java Flight Recorder használatával folyamatosan profilt készíthet a Java-alkalmazásról, minimális hatással a futtatókörnyezet teljesítményére. Ehhez futtassa a következő Azure CLI-parancsot egy JAVA_OPTS nevű alkalmazásbeállítás létrehozásához a szükséges konfigurációval. A JAVA_OPTS alkalmazásbeállítás tartalma a parancsnak java lesz átadva az alkalmazás indításakor.

az webapp config appsettings set -g <your_resource_group> -n <your_app_name> --settings JAVA_OPTS=-XX:StartFlightRecording=disk=true,name=continuous_recording,dumponexit=true,maxsize=1024m,maxage=1d

A rögzítés megkezdése után a parancs használatával bármikor kiadhatja az aktuális rögzítési JFR.dump adatokat.

jcmd <pid> JFR.dump name=continuous_recording filename="/home/recording1.jfr"

Fájlok elemzése .jfr

Az FTPS használatával töltse le a JFR-fájlt a helyi gépre. A JFR-fájl elemzéséhez töltse le és telepítse a Java Mission Controlt. A Java Mission Control-ra vonatkozó utasításokért tekintse meg a JMC dokumentációját és a telepítési utasításokat.

Alkalmazásnaplózás

Engedélyezze az alkalmazásnaplózást az Azure Portalon vagy az Azure CLI-ben , hogy konfigurálja az App Service-t az alkalmazás szabványos konzolkimenetének és standard konzolhibáinak a helyi fájlrendszerbe vagy az Azure Blob Storage-ba való írásához. Ha hosszabb megőrzésre van szüksége, konfigurálja az alkalmazást úgy, hogy a kimenetet egy Blob Storage-tárolóba írja.

A Java- és Tomcat-alkalmazásnaplók a /home/LogFiles/Application/ könyvtárban találhatók.

Az Azure Blob Storage naplózása Linux-alapú alkalmazásokhoz csak az Azure Monitor használatával konfigurálható.

Ha az alkalmazás a Logbacket vagy a Log4j-t használja a nyomkövetéshez, ezeket a nyomkövetéseket továbbíthatja a Azure-alkalmazás Insightsba a naplózási keretrendszer konfigurációs utasításaival az Application Insights Java-nyomkövetési naplóinak feltárásához.

Feljegyzés

A CVE-2021-44228 ismert biztonsági rése miatt mindenképpen használja a Log4j 2.16-os vagy újabb verzióját.

Testreszabás és finomhangolás

Azure-alkalmazás szolgáltatás az Azure Portalon és a parancssori felületen keresztül támogatja a kívülről történő finomhangolást és testreszabást. Tekintse át a nem Java-specifikus webalkalmazás-konfigurációval kapcsolatos alábbi cikkeket:

Alkalmazástartalom helyi másolása

Állítsa be az alkalmazásbeállítást JAVA_COPY_ALL úgy, hogy true az alkalmazás tartalmát a megosztott fájlrendszerből másolja a helyi feldolgozóba. Ez a beállítás segít a fájlzárolási problémák megoldásában.

Java-futtatókörnyezet beállításainak megadása

A lefoglalt memória vagy más JVM-futtatókörnyezet beállításainak beállításához hozzon létre egy alkalmazásbeállítást a beállításokkal együttJAVA_OPTS. Az App Service környezeti változóként továbbítja ezt a beállítást a Java-futtatókörnyezetnek az indításkor.

Az Azure Portalon a webalkalmazás Alkalmazásbeállítások területén hozzon létre egy új alkalmazásbeállítást JAVA_OPTS , amely más beállításokat is tartalmaz, például -Xms512m -Xmx1204m.

Az Azure Portalon a webalkalmazás Alkalmazásbeállítások területén hozzon létre egy új alkalmazásbeállítást CATALINA_OPTS , amely más beállításokat is tartalmaz, például -Xms512m -Xmx1204m.

Ha az alkalmazásbeállítást a Maven beépülő modulból szeretné konfigurálni, adja hozzá a beállítási/értékcímkéket az Azure beépülő modul szakaszában. Az alábbi példa egy meghatározott minimális és maximális Java-halomméretet állít be:

<appSettings>
    <property>
        <name>JAVA_OPTS</name>
        <value>-Xms1024m -Xmx1024m</value>
    </property>
</appSettings>

Feljegyzés

A Tomcat Windows App Service-en való használatakor nem kell web.config fájlt létrehoznia.

Az App Service-csomagban egyetlen üzembehelyezési ponttal rendelkező alkalmazást futtató fejlesztők az alábbi lehetőségeket használhatják:

  • B1 és S1 példányok: -Xms1024m -Xmx1024m
  • B2 és S2 példányok: -Xms3072m -Xmx3072m
  • B3- és S3-példányok: -Xms6144m -Xmx6144m
  • P1v2-példányok: -Xms3072m -Xmx3072m
  • P2v2-példányok: -Xms6144m -Xmx6144m
  • P3v2-példányok: -Xms12800m -Xmx12800m
  • P1v3-példányok: -Xms6656m -Xmx6656m
  • P2v3-példányok: -Xms14848m -Xmx14848m
  • P3v3-példányok: -Xms30720m -Xmx30720m
  • I1-példányok: -Xms3072m -Xmx3072m
  • I2-példányok: -Xms6144m -Xmx6144m
  • I3-példányok: -Xms12800m -Xmx12800m
  • I1v2-példányok: -Xms6656m -Xmx6656m
  • I2v2-példányok: -Xms14848m -Xmx14848m
  • I3v2-példányok: -Xms30720m -Xmx30720m

Az alkalmazás halombeállításainak finomhangolásakor tekintse át az App Service-csomag részleteit, és vegye figyelembe, hogy több alkalmazásnak és üzembehelyezési pontnak kell megtalálnia a memória optimális lefoglalását.

Webes szoftvercsatornák bekapcsolása

Kapcsolja be a webes szoftvercsatornák támogatását az Azure Portalon az alkalmazás alkalmazásbeállításaiban . A beállítás érvénybe lépéséhez újra kell indítania az alkalmazást.

A webes szoftvercsatornák támogatásának bekapcsolása az Azure CLI-vel az alábbi paranccsal:

az webapp config set --name <app-name> --resource-group <resource-group-name> --web-sockets-enabled true

Ezután indítsa újra az alkalmazást:

az webapp stop --name <app-name> --resource-group <resource-group-name>
az webapp start --name <app-name> --resource-group <resource-group-name>

Alapértelmezett karakterkódolás beállítása

Az Azure Portalon a webalkalmazás Alkalmazásbeállítások területén hozzon létre egy új, értékekkel -Dfile.encoding=UTF-8elnevezett JAVA_OPTS alkalmazásbeállítást.

Másik lehetőségként konfigurálhatja az alkalmazásbeállítást az App Service Maven beépülő modullal. Adja hozzá a beállításnevet és az értékcímkéket a beépülő modul konfigurációjában:

<appSettings>
    <property>
        <name>JAVA_OPTS</name>
        <value>-Dfile.encoding=UTF-8</value>
    </property>
</appSettings>

JSP-fájlok fordítása előtti

A Tomcat-alkalmazások teljesítményének javítása érdekében az App Service-ben való üzembe helyezés előtt lefordíthatja a JSP-fájlokat. Használhatja az Apache Sling által biztosított Maven beépülő modult , vagy használhatja ezt az Ant buildfájlt.

Feljegyzés

robots933456 a naplókban

A következő üzenet jelenhet meg a tárolónaplókban:

2019-04-08T14:07:56.641002476Z "-" - - [08/Apr/2019:14:07:56 +0000] "GET /robots933456.txt HTTP/1.1" 404 415 "-" "-"

Az üzenet biztonságosan figyelmen kívül hagyható. /robots933456.txt egy olyan próba URL-cím, amelyet az App Service annak a vizsgálatára használ, hogy a tároló képes-e a kérések kiszolgálására. A 404-es válasz egyszerűen azt jelenti, hogy a cím nem létezik, azonban jelzi az App Service számára, hogy a tároló kifogástalan állapotú, és készen áll a kérések megválaszolására.

Java-futtatókörnyezeti verzió kiválasztása

Az App Service-ben a felhasználók kiválaszthatják a JVM főverzióját, például a Java 8-at vagy a Java 11-et, valamint a javítás verzióját, például az 1.8.0_232-es vagy a 11.0.5-ös verziót. Dönthet úgy is, hogy az új alverziók elérhetővé válásával automatikusan frissíti a javításverziót. A legtöbb esetben az éles alkalmazásoknak rögzített javítás JVM-verziókat kell használniuk. Ez megakadályozza a nem várt kimaradást a javítások automatikus frissítések során. Minden Java-webalkalmazás 64 bites JVM-eket használ, és nem konfigurálható.

Ha Tomcat-et használ, dönthet úgy, hogy rögzíti a Tomcat javításverzióját. Windows rendszeren a JVM és a Tomcat javításverzióit egymástól függetlenül rögzítheti. Linuxon rögzítheti a Tomcat javításverzióját; A JVM javításverziója is rögzítve van, de külön nem konfigurálható.

Ha úgy dönt, hogy rögzíti az alverziót, rendszeresen frissítenie kell a JVM alverzióját az alkalmazásban. Annak érdekében, hogy az alkalmazás az újabb alverzión fusson, hozzon létre egy átmeneti pontot, és növelje az alverziót az előkészítési ponton. Ha meggyőződik arról, hogy az alkalmazás megfelelően fut az új alverzión, felcserélheti az előkészítési és éles pontokat.

Fürtözés

Az App Service támogatja a fürtözést a JBoss EAP 7.4.1-s és újabb verzióihoz. A fürtözés engedélyezéséhez a webalkalmazásnak integrálva kell lennie egy virtuális hálózattal. Amikor a webalkalmazás integrálva van egy virtuális hálózattal, újraindul, és a JBoss EAP telepítése automatikusan fürtözött konfigurációval indul el. A JBoss EAP-példányok a virtuális hálózati integrációban megadott alhálózaton keresztül kommunikálnak a környezeti változóban WEBSITES_PRIVATE_PORTS futásidőben megjelenített portokkal. A fürtözés letiltásához hozzon létre egy tetszőleges értékkel elnevezett WEBSITE_DISABLE_CLUSTERING alkalmazásbeállítást.

Feljegyzés

Ha arm-sablonnal engedélyezi a virtuális hálózat integrációját, manuálisan kell beállítania a tulajdonság vnetPrivatePorts értékét 2. Ha engedélyezi a virtuális hálózati integrációt a parancssori felületről vagy a portálról, ez a tulajdonság automatikusan be van állítva.

Ha engedélyezve van a fürtözés, a JBoss EAP-példányok a FILE_PING JGroups felderítési protokollt használják az új példányok felderítéséhez, és megőrzik a fürt adatait, például a fürt tagjait, azonosítóikat és IP-címeiket. Az App Service-ben ezek a fájlok a következő alatt /home/clusterinfo/találhatók: . Az első EAP-példány olvasási/írási engedélyeket szerez be a fürt tagsági fájlján. Más példányok beolvassák a fájlt, megkeresik az elsődleges csomópontot, és egyeztetnek a fürtbe felvenni kívánt csomóponttal, és hozzáadják a fájlhoz.

Feljegyzés

A JBOSS-fürtözés időtúllépését elkerülheti, ha az alkalmazás indításakor megtisztítja az elavult felderítési fájlokat

A Prémium V3 és az izolált V2 App Service-csomagtípusok opcionálisan eloszthatók a rendelkezésre állási zónák között, így javítva az üzleti szempontból kritikus fontosságú számítási feladatok rugalmasságát és megbízhatóságát. Ezt az architektúrát zónaredundanciának is nevezik. A JBoss EAP-fürtszolgáltatás kompatibilis a zónaredundancia funkcióval.

Automatikus méretezési szabályok

Ha automatikus méretezési szabályokat konfigurál a horizontális skálázáshoz, fontos, hogy a példányokat növekményesen (egyenként) távolítsa el, hogy az egyes eltávolított példányok átadhassák a tevékenységeit (például egy adatbázis-tranzakció kezelését) a fürt egy másik tagjára. Ha az automatikus méretezési szabályokat a Portálon úgy konfigurálja, hogy leskálázható legyen, használja az alábbi beállításokat:

  • Művelet: "Darabszám csökkentése"
  • Lehűlés: "5 perc" vagy nagyobb
  • Példányszám: 1

Nem kell növekményesen hozzáadnia példányokat (horizontális felskálázás), egyszerre több példányt is hozzáadhat a fürthöz.

App Service-csomagok

A JBoss EAP a következő tarifacsomagokban érhető el: F1, P0v3, P1mv3, P2mv3, P3mv3, P4mv3 és P5mv3.

Tomcat alapkonfiguráció

Feljegyzés

Ez a szakasz csak Linuxra vonatkozik.

A Java-fejlesztők megbízhatóan testre szabhatják a kiszolgáló beállításait, elháríthatják a problémákat, és magabiztosan helyezhetnek üzembe alkalmazásokat a Tomcatben, ha ismerik a Tomcat server.xml fájl- és konfigurációs adatait. A lehetséges testreszabások a következők:

  • A Tomcat konfigurációjának testreszabása: A server.xml fájl és a Tomcat konfigurációs adatainak megismerésével finomhangolhatja a kiszolgáló beállításait az alkalmazások igényeinek megfelelően.
  • Hibakeresés: Ha egy alkalmazás telepítve van egy Tomcat-kiszolgálón, a fejlesztőknek ismernie kell a kiszolgáló konfigurációját az esetleges problémák hibakereséséhez. Ez magában foglalja a kiszolgálónaplók ellenőrzését, a konfigurációs fájlok vizsgálatát és az esetlegesen előforduló hibák azonosítását.
  • A Tomcat hibáinak elhárítása: A Java-fejlesztők elkerülhetetlenül problémákat tapasztalnak a Tomcat-kiszolgálójukkal, például teljesítményproblémákkal vagy konfigurációs hibákkal. A server.xml fájl és a Tomcat konfigurációs adatainak megismerésével a fejlesztők gyorsan diagnosztizálhatják és elháríthatják ezeket a problémákat, ami időt és energiát takaríthat meg.
  • Alkalmazások üzembe helyezése a Tomcatben: Ha Java-webalkalmazást szeretne üzembe helyezni a Tomcatben, a fejlesztőknek tudniuk kell, hogyan konfigurálják a server.xml fájlt és más Tomcat-beállításokat. Ezeknek a részleteknek a megértése elengedhetetlen az alkalmazások sikeres üzembe helyezéséhez és annak biztosításához, hogy zökkenőmentesen futnak a kiszolgálón.

Ha egy beépített Tomcattel rendelkező alkalmazást hoz létre a Java-számítási feladatok (war- vagy JAR-fájlok) üzemeltetéséhez, bizonyos beállításokat ki kell vennie a Tomcat-konfiguráció keretéből. Részletes információkért tekintse meg az Apache Tomcat hivatalos dokumentációját , beleértve a Tomcat Web Server alapértelmezett konfigurációját is.

Emellett vannak bizonyos átalakítások is, amelyek a Tomcat-eloszlás server.xml felül vannak alkalmazva a kezdéskor. Ezek az összekötő, a gazdagép és a szelep beállításainak átalakításai.

A Tomcat legújabb verziói server.xml (8.5.58-at és 9.0.38-at) használnak. A Tomcat régebbi verziói nem használnak átalakításokat, és ennek következtében eltérő viselkedésük lehet.

Összekötő

<Connector port="${port.http}" address="127.0.0.1" maxHttpHeaderSize="16384" compression="on" URIEncoding="UTF-8" connectionTimeout="${site.connectionTimeout}" maxThreads="${catalina.maxThreads}" maxConnections="${catalina.maxConnections}" protocol="HTTP/1.1" redirectPort="8443"/>
  • maxHttpHeaderSize a következőre van állítva: 16384
  • URIEncoding a következőre van állítva: UTF-8
  • conectionTimeout értékre WEBSITE_TOMCAT_CONNECTION_TIMEOUTvan állítva, amely alapértelmezés szerint a következő: 240000
  • maxThreads értékre WEBSITE_CATALINA_MAXTHREADSvan állítva, amely alapértelmezés szerint a következő: 200
  • maxConnections értékre WEBSITE_CATALINA_MAXCONNECTIONSvan állítva, amely alapértelmezés szerint a következő: 10000

Feljegyzés

A connectionTimeout, a maxThreads és a maxConnections beállítások alkalmazásbeállításokkal hangolhatók

Az alábbiakban olyan parancssori felületi parancsokat láthat, amelyekkel módosíthatja a conectionTimeout, a maxThreads vagy a maxConnections értékét:

az webapp config appsettings set --resource-group myResourceGroup --name myApp --settings WEBSITE_TOMCAT_CONNECTION_TIMEOUT=120000
az webapp config appsettings set --resource-group myResourceGroup --name myApp --settings WEBSITE_CATALINA_MAXTHREADS=100
az webapp config appsettings set --resource-group myResourceGroup --name myApp --settings WEBSITE_CATALINA_MAXCONNECTIONS=5000
  • Az összekötő a tároló címét használja a 127.0.0.1 helyett

Gazdagép

<Host appBase="${site.appbase}" xmlBase="${site.xmlbase}" unpackWARs="${site.unpackwars}" workDir="${site.tempdir}" errorReportValveClass="com.microsoft.azure.appservice.AppServiceErrorReportValve" name="localhost" autoDeploy="true">
  • appBase értékre AZURE_SITE_APP_BASEvan állítva, amely alapértelmezés szerint helyi WebappsLocalPath
  • xmlBase értékre AZURE_SITE_HOMEvan állítva, amely alapértelmezés szerint a következő: /site/wwwroot
  • unpackWARs értékre AZURE_UNPACK_WARSvan állítva, amely alapértelmezés szerint a következő: true
  • workDir az alapértelmezett értékre JAVA_TMP_DIRvan állítva TMP
  • errorReportValveClass egyéni hibajelentési szelepet használ

Szelep

<Valve prefix="site_access_log.${catalina.instance.name}" pattern="%h %l %u %t &quot;%r&quot; %s %b %D %{x-arr-log-id}i" directory="${site.logdir}/http/RawLogs" maxDays="${site.logRetentionDays}" className="org.apache.catalina.valves.AccessLogValve" suffix=".txt"/>
  • directory értékre AZURE_LOGGING_DIRvan állítva, amely alapértelmezés szerint a következő: home\logFiles
  • maxDaysWEBSITE_HTTPLOGGING_RETENTION_DAYSaz , amely alapértelmezés szerint 0 [forever]

Linuxon ugyanazzal a testreszabással rendelkezik, plusz:

  • Hiba- és jelentéskészítési oldalakat ad hozzá a szelephez:

    <xsl:attribute name="appServiceErrorPage">
        <xsl:value-of select="'${appService.valves.appServiceErrorPage}'"/>
    </xsl:attribute>
    
    <xsl:attribute name="showReport">
        <xsl:value-of select="'${catalina.valves.showReport}'"/>
    </xsl:attribute>
    
    <xsl:attribute name="showServerInfo">
        <xsl:value-of select="'${catalina.valves.showServerInfo}'"/>
    </xsl:attribute>
    

Következő lépések

Látogasson el az Azure for Java Fejlesztői központba az Azure rövid útmutatóihoz, oktatóanyagaihoz és Java-referenciadokumentációihoz.