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
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öz
build.gradle
:plugins { id "com.microsoft.azure.azurewebapp" version "1.10.0" }
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 } }
Ü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:
- VS Code: Java Web Apps és Visual Studio Code
- IntelliJ IDEA:„Helló világ!” alkalmazás webalkalmazás létrehozása Azure-alkalmazás Szolgáltatáshoz az IntelliJ használatával
- Eclipse:„Helló világ!” alkalmazás webalkalmazás létrehozása Azure-alkalmazás Szolgáltatáshoz az Eclipse használatával
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.
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.check
van-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ásbeállítások konfigurálása
- Egyéni tartomány beállítása
- TLS-/SSL-kötések konfigurálása
- CDN hozzáadása
- A Kudu-webhely konfigurálása
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-8
elnevezett 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ékreWEBSITE_TOMCAT_CONNECTION_TIMEOUT
van állítva, amely alapértelmezés szerint a következő:240000
maxThreads
értékreWEBSITE_CATALINA_MAXTHREADS
van állítva, amely alapértelmezés szerint a következő:200
maxConnections
értékreWEBSITE_CATALINA_MAXCONNECTIONS
van á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ékreAZURE_SITE_APP_BASE
van állítva, amely alapértelmezés szerint helyiWebappsLocalPath
xmlBase
értékreAZURE_SITE_HOME
van állítva, amely alapértelmezés szerint a következő:/site/wwwroot
unpackWARs
értékreAZURE_UNPACK_WARS
van állítva, amely alapértelmezés szerint a következő:true
workDir
az alapértelmezett értékreJAVA_TMP_DIR
van állítvaTMP
errorReportValveClass
egyéni hibajelentési szelepet használ
Szelep
<Valve prefix="site_access_log.${catalina.instance.name}" pattern="%h %l %u %t "%r" %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ékreAZURE_LOGGING_DIR
van állítva, amely alapértelmezés szerint a következő:home\logFiles
maxDays
WEBSITE_HTTPLOGGING_RETENTION_DAYS
az , amely alapértelmezés szerint0
[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.