Een Java-web-app implementeren op een VM in Azure Stack Hub
U kunt een virtuele machine (VM) maken om uw Java-web-app te hosten in Azure Stack Hub. In dit artikel installeert u de juiste poorten en configureert u een Apache Tomcat-server op een Virtuele Linux-machine in Azure Stack Hub. Vervolgens laadt u een WAR-bestand (Java Web Application Resource) op de server. Een WAR-bestand wordt gebruikt om een verzameling JAVA-archiefbestanden (JAR)-bestanden te distribueren, gecomprimeerde bestanden die Java-resources bevatten, zoals klassen, tekst, afbeeldingen, XML en HTML, en andere resources die worden gebruikt om een webtoepassing te leveren.
Een virtuele machine maken
Stel uw VM in Azure Stack Hub in door de instructies te volgen in Een Virtuele Linux-machine implementeren om een web-app te hosten in Azure Stack Hub.
Controleer in het deelvenster VM-netwerk of de volgende poorten toegankelijk zijn:
Poort Protocol Beschrijving 80 HTTP Hypertext Transfer Protocol (HTTP) is het protocol dat wordt gebruikt om webpagina's van servers te leveren. Clients maken verbinding via HTTP met een DNS-naam of IP-adres. 443 HTTPS Hypertext Transfer Protocol Secure (HTTPS) is een beveiligde versie van HTTP waarvoor een beveiligingscertificaat is vereist en waarmee de versleutelde overdracht van informatie mogelijk is. 22 SSH Secure Shell (SSH) is een versleuteld netwerkprotocol voor beveiligde communicatie. U gebruikt deze verbinding met een SSH-client om de VM te configureren en de app te implementeren. 3389 RDP Optioneel. Met Remote Desktop Protocol (RDP) kan een externe bureaubladverbinding een grafische gebruikersinterface op uw computer gebruiken. 8080 Aangepast telefoonnummer De standaardpoort voor de Apache Tomcat-service. Voor een productieserver routeert u uw verkeer via 80 en 443.
Java installeren
Verbinding maken naar uw VIRTUELE machine met behulp van uw SSH-client. Zie Verbinding maken via SSH met PuTTY voor instructies.
Voer bij de bash-prompt op uw VIRTUELE machine de volgende opdracht uit:
sudo apt-get install default-jdk
Valideer de installatie. Voer de volgende opdracht uit om nog steeds verbinding te maken met uw VIRTUELE machine in uw SSH-sessie:
java -version
Tomcat installeren en configureren
Verbinding maken naar uw VIRTUELE machine met behulp van uw SSH-client. Zie Verbinding maken via SSH met PuTTY voor instructies.
Maak een Tomcat-gebruiker door het volgende te doen:
a. Maak een nieuwe Tomcat-groep door de volgende opdracht uit te voeren:
sudo groupadd tomcat
b. Maak een nieuwe Tomcat-gebruiker. Voeg deze gebruiker toe aan de Tomcat-groep met een basismap van /opt/tomcat. U implementeert Tomcat in deze map:
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Installeer Tomcat als volgt:
a. Haal de URL voor de tar op voor de nieuwste versie van Tomcat 8 vanaf de downloadpagina van Tomcat 8.
b. Gebruik cURL om de nieuwste versie te downloaden met behulp van de koppeling. Voer de volgende opdrachten uit:
cd /tmp curl -O <URL for the tar for the latest version of Tomcat 8>
c. Installeer Tomcat in de map /opt/tomcat . Maak de map en open het archief:
sudo mkdir /opt/tomcat sudo tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1 sudo chown -R tomcat webapps/ work/ temp/ logs/
Werk de machtigingen voor Tomcat bij door de volgende opdrachten uit te voeren:
sudo chgrp -R tomcat /opt/tomcat sudo chmod -R g+r conf sudo chmod g+x conf
Maak een systeemservicebestand , zodat u Tomcat als een service kunt uitvoeren.
a. Tomcat moet weten waar u Java hebt geïnstalleerd. Dit pad wordt meestal aangeduid als JAVA_HOME. Zoek de locatie door het volgende uit te voeren:
sudo update-java-alternatives -l
Dit produceert ongeveer als volgt:
Output java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
U kunt de JAVA_HOME variabele waarde maken door het pad uit de uitvoer te nemen en /jre toe te voegen. Gebruik bijvoorbeeld het voorgaande voorbeeld /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre.
b. Gebruik de waarde van uw server om het systeemservicebestand te maken:
sudo nano /etc/systemd/system/tomcat.service
c. Plak de volgende inhoud in uw servicebestand. Wijzig zo nodig de waarde van JAVA_HOME zodat deze overeenkomt met de waarde die u op uw systeem hebt gevonden. Mogelijk wilt u ook de instellingen voor geheugentoewijzing wijzigen die zijn opgegeven in CATALINA_OPTS:
[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC' Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh User=tomcat Group=tomcat UMask=0007 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
d. Sla het bestand op en sluit het.
e. Laad de systemd daemon opnieuw zodat deze weet van uw servicebestand:
sudo systemctl daemon-reload
f. Start de Tomcat-service:
sudo systemctl start tomcat
g. Controleer of deze is gestart zonder fouten door het volgende in te voeren:
sudo systemctl status tomcat
Controleer de Tomcat-server. Tomcat gebruikt poort 8080 om conventionele aanvragen te accepteren. Sta verkeer naar die poort toe door de volgende opdracht uit te voeren:
sudo ufw allow 8080
Als u de regels voor binnenkomende poorten voor uw Azure Stack Hub-VM nog niet hebt toegevoegd, voegt u deze nu toe. Zie Een virtuele machine maken voor meer informatie.
Open een browser in hetzelfde netwerk als uw Azure Stack Hub en open vervolgens uw server, yourmachine.local.cloudapp.azurestack.external:8080.
De Pagina Apache Tomcat op uw server wordt geladen. Vervolgens configureert u de server zodat u toegang hebt tot de serverstatus, de beheer-app en hostbeheer.
Schakel het servicebestand in zodat Tomcat automatisch wordt gestart wanneer u de server opnieuw opstart:
sudo systemctl enable tomcat
Als u uzelf toegang wilt geven tot de webbeheerinterface, configureert u de Tomcat-server.
a. Bewerk het tomcat-users.xml-bestand en definieer een rol en gebruiker, zodat u zich kunt aanmelden. Definieer de gebruiker voor toegang tot de
manager-gui
enadmin-gui
.sudo nano /opt/tomcat/conf/tomcat-users.xml
b. Voeg de volgende elementen toe aan de
<tomcat-users>
sectie:<role rolename="tomcat"/> <user username="<username>" password="<password>" roles="tomcat,manager-gui,admin-gui"/>
Het uiteindelijke bestand ziet er bijvoorbeeld ongeveer als volgt uit:
<tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <role rolename="tomcat"/> <user username="tomcatuser" password="changemepassword" roles="tomcat,manager-gui,admin-gui"/> </tomcat-users>
c. Sla het bestand op en sluit het.
Tomcat beperkt de toegang tot de Manager - en Host Manager-apps tot verbindingen die afkomstig zijn van de server. Omdat u Tomcat installeert op een virtuele machine in Azure Stack Hub, wilt u deze beperking verwijderen. Wijzig de IP-adresbeperkingen voor deze apps door de juiste context.xml bestanden te bewerken.
a. Werk context.xml bij in de Manager-app:
sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
b. Maak een opmerking over de IP-adresbeperking om verbindingen vanaf elke locatie toe te staan of voeg het IP-adres toe van de computer die u gebruikt om verbinding te maken met Tomcat.
<Context antiResourceLocking="false" privileged="true" > <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />--> </Context>
c. Sla het bestand op en sluit het.
d. Werk context.xml de Host Manager-app bij met een vergelijkbare update:
sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
e. Sla het bestand op en sluit het.
Als u de server wilt bijwerken met de wijzigingen, start u de Tomcat-service opnieuw op:
sudo systemctl restart tomcat
Open een browser in hetzelfde netwerk als uw Azure Stack Hub en open vervolgens uw server: yourmachine.local.cloudapp.azurestack.external:8080.
a. Als u de status van de Tomcat-server wilt controleren en wilt controleren of u toegang hebt, selecteert u Serverstatus.
b. Meld u aan met uw Tomcat-referenties.
Een app maken
U moet een WAR maken om te implementeren in Tomcat. Als u alleen uw omgeving wilt controleren, kunt u een voorbeeld WAR vinden op de Apache Tomcat-site.
Zie Java-apps bouwen en implementeren in Azure voor hulp bij het ontwikkelen van Java-apps in Azure.
De app implementeren en uitvoeren
Verbinding maken naar uw VIRTUELE machine met behulp van uw SSH-client. Zie Verbinding maken via SSH met PuTTY voor instructies.
Als u de server wilt bijwerken met uw app-pakket, stopt u de Tomcat-service:
sudo systemctl stop tomcat
Als u naar de map web-apps wilt schrijven, voegt u uw FTP-gebruiker toe aan de Tomcat-groep. Uw FTP-gebruiker is de gebruiker die u definieert wanneer u uw VIRTUELE machine maakt in Azure Stack Hub.
sudo usermod -a -G tomcat <VM-user>
Als u de map web-apps wilt wissen en vervolgens de nieuwe of bijgewerkte WAR wilt laden, maakt u verbinding met uw VIRTUELE machine met FileZilla. Zie Verbinding maken met SFTP met FileZilla voor instructies.
a. Wis TOMCAT_HOME/web-apps.
b. Voeg uw WAR toe aan TOMCAT_HOME/web-apps (bijvoorbeeld /opt/tomcat/webapps/).
Tomcat breidt de toepassing automatisch uit en implementeert deze. U kunt deze weergeven met behulp van de DNS-naam die u eerder hebt gemaakt. Bijvoorbeeld:
http://yourmachine.local.cloudapp.azurestack.external:8080/sample
Volgende stappen
- Meer informatie over het ontwikkelen voor Azure Stack Hub.
- Meer informatie over algemene implementaties voor Azure Stack Hub als IaaS.
- Zie Java.com voor meer informatie over de programmeertaal Java en aanvullende resources voor Java.