Wdrażanie aplikacji internetowej Java na maszynie wirtualnej w usłudze Azure Stack Hub
Możesz utworzyć maszynę wirtualną do hostowania aplikacji internetowej Java w usłudze Azure Stack Hub. W tym artykule zainstalujesz odpowiednie porty i skonfigurujesz serwer Apache Tomcat na maszynie wirtualnej z systemem Linux w usłudze Azure Stack Hub. Następnie załadujesz plik zasobu aplikacji internetowej Java (WAR) na serwer. Plik WAR służy do dystrybucji kolekcji plików archiwum Java (JAR), skompresowanych plików zawierających zasoby Java, takie jak klasy, tekst, obrazy, XML i HTML oraz inne zasoby używane do dostarczania aplikacji internetowej.
Tworzenie maszyny wirtualnej
Skonfiguruj maszynę wirtualną w usłudze Azure Stack Hub, postępując zgodnie z instrukcjami w temacie Deploy a Linux VM to host a web app in Azure Stack Hub (Wdrażanie maszyny wirtualnej z systemem Linux w celu hostowania aplikacji internetowej w usłudze Azure Stack Hub).
W okienku Sieć maszyn wirtualnych upewnij się, że dostępne są następujące porty:
Port Protokół Opis 80 HTTP Protokół HTTP (Hypertext Transfer Protocol) to protokół używany do dostarczania stron internetowych z serwerów. Klienci łączą się za pośrednictwem protokołu HTTP z nazwą DNS lub adresem IP. 443 HTTPS Hypertext Transfer Protocol Secure (HTTPS) to bezpieczna wersja protokołu HTTP, która wymaga certyfikatu zabezpieczeń i umożliwia zaszyfrowaną transmisję informacji. 22 Protokół SSH Secure Shell (SSH) to szyfrowany protokół sieciowy do bezpiecznej komunikacji. To połączenie jest używane z klientem SSH, aby skonfigurować maszynę wirtualną i wdrożyć aplikację. 3389 RDP Opcjonalny. Protokół RDP (Remote Desktop Protocol) umożliwia podłączanie pulpitu zdalnego do korzystania z graficznego interfejsu użytkownika na maszynie. 8080 Niestandardowy Domyślny port usługi Apache Tomcat. W przypadku serwera produkcyjnego ruch jest kierowany przez 80 i 443.
Instalowanie języka Java
Nawiąż połączenie z maszyną wirtualną przy użyciu klienta SSH. Aby uzyskać instrukcje, zobacz Connect via SSH with PuTTY (Nawiązywanie połączenia za pośrednictwem protokołu SSH za pomocą platformy PuTTY).
W wierszu polecenia powłoki bash na maszynie wirtualnej uruchom następujące polecenie:
sudo apt-get install default-jdk
Zweryfikuj instalację. Nadal połączone z maszyną wirtualną w sesji SSH uruchom następujące polecenie:
java -version
Instalowanie i konfigurowanie serwera Tomcat
Nawiąż połączenie z maszyną wirtualną przy użyciu klienta SSH. Aby uzyskać instrukcje, zobacz Connect via SSH with PuTTY (Nawiązywanie połączenia za pośrednictwem protokołu SSH za pomocą platformy PuTTY).
Utwórz użytkownika tomcat, wykonując następujące czynności:
a. Utwórz nową grupę Tomcat, uruchamiając następujące polecenie:
sudo groupadd tomcat
b. Utwórz nowego użytkownika serwera Tomcat. Dodaj tego użytkownika do grupy Tomcat z katalogiem głównym /opt/tomcat. Wdrożysz program Tomcat w tym katalogu:
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Zainstaluj aplikację Tomcat, wykonując następujące czynności:
a. Pobierz adres URL tar dla najnowszej wersji serwera Tomcat 8 ze strony pobierania Tomcat 8.
b. Użyj narzędzia cURL, aby pobrać najnowszą wersję przy użyciu linku. Uruchom następujące polecenia:
cd /tmp curl -O <URL for the tar for the latest version of Tomcat 8>
c. Zainstaluj serwer Tomcat w katalogu /opt/tomcat . Utwórz folder, a następnie otwórz archiwum:
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/
Zaktualizuj uprawnienia serwera Tomcat, uruchamiając następujące polecenia:
sudo chgrp -R tomcat /opt/tomcat sudo chmod -R g+r conf sudo chmod g+x conf
Utwórz plik usługi systemowej , aby można było uruchomić usługę Tomcat jako usługę.
a. Tomcat musi wiedzieć, gdzie zainstalowano środowisko Java. Ta ścieżka jest często określana jako JAVA_HOME. Znajdź lokalizację, uruchamiając polecenie:
sudo update-java-alternatives -l
Spowoduje to wygenerowanie czegoś podobnego do następującego:
Output java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
Możesz skonstruować wartość zmiennej JAVA_HOME , wybierając ścieżkę z danych wyjściowych i dodając /jre. Na przykład, korzystając z poprzedniego przykładu, /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre.
b. Użyj wartości z serwera, aby utworzyć plik usługi systemd:
sudo nano /etc/systemd/system/tomcat.service
c. Wklej następującą zawartość do pliku usługi. Zmodyfikuj wartość JAVA_HOME, jeśli jest to konieczne, aby dopasować wartość znalezioną w systemie. Możesz również zmodyfikować ustawienia alokacji pamięci określone w 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. Zapisz i zamknij plik.
e. Załaduj ponownie demona systemowego, aby wiedział o pliku usługi:
sudo systemctl daemon-reload
f. Uruchom usługę Tomcat:
sudo systemctl start tomcat
g. Sprawdź, czy została uruchomiona bez błędów, wprowadzając następujące informacje:
sudo systemctl status tomcat
Sprawdź serwer Tomcat. Tomcat używa portu 8080 do akceptowania konwencjonalnych żądań. Zezwalaj na ruch do tego portu, uruchamiając następujące polecenie:
sudo ufw allow 8080
Jeśli nie dodano reguł portów przychodzących dla maszyny wirtualnej usługi Azure Stack Hub, dodaj je teraz. Aby uzyskać więcej informacji, zobacz Tworzenie maszyny wirtualnej.
Otwórz przeglądarkę w tej samej sieci co usługa Azure Stack Hub, a następnie otwórz serwer yourmachine.local.cloudapp.azurestack.external:8080.
Strona Apache Tomcat na serwerze zostanie załadowana. Następnie skonfigurujesz serwer, aby umożliwić dostęp do stanu serwera, aplikacji Menedżera i Menedżera hosta.
Włącz plik usługi, aby program Tomcat automatycznie uruchamiał się po ponownym uruchomieniu serwera:
sudo systemctl enable tomcat
Aby umożliwić sobie dostęp do interfejsu zarządzania internetowego, skonfiguruj serwer Tomcat.
a. Edytuj plik tomcat-users.xml i zdefiniuj rolę i użytkownika, aby móc się zalogować. Zdefiniuj użytkownika, aby uzyskać dostęp do obiektów
manager-gui
iadmin-gui
.sudo nano /opt/tomcat/conf/tomcat-users.xml
b. Dodaj następujące elementy do
<tomcat-users>
sekcji:<role rolename="tomcat"/> <user username="<username>" password="<password>" roles="tomcat,manager-gui,admin-gui"/>
Na przykład ostateczny plik może wyglądać następująco:
<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. Zapisz i zamknij plik.
Serwer Tomcat ogranicza dostęp do aplikacji Menedżer i Menedżer hosta do połączeń pochodzących z serwera. Ponieważ instalujesz aplikację Tomcat na maszynie wirtualnej w usłudze Azure Stack Hub, musisz usunąć to ograniczenie. Zmień ograniczenia adresów IP dla tych aplikacji, edytując odpowiednie plikicontext.xml .
a. Zaktualizuj context.xml w aplikacji Menedżer:
sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
b. Oznacz jako komentarz ograniczenie adresu IP, aby zezwolić na połączenia z dowolnego miejsca lub dodać adres IP maszyny, której używasz do nawiązywania połączenia z serwerem 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. Zapisz i zamknij plik.
d. Zaktualizuj context.xml aplikacji Menedżer hostów przy użyciu podobnej aktualizacji:
sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
e. Zapisz i zamknij plik.
Aby zaktualizować serwer za pomocą zmian, uruchom ponownie usługę Tomcat:
sudo systemctl restart tomcat
Otwórz przeglądarkę w tej samej sieci co usługa Azure Stack Hub, a następnie otwórz serwer: yourmachine.local.cloudapp.azurestack.external:8080.
a. Aby przejrzeć stan serwera Tomcat i sprawdzić, czy masz dostęp, wybierz pozycję Stan serwera.
b. Zaloguj się przy użyciu poświadczeń serwera Tomcat.
Tworzenie aplikacji
Musisz utworzyć war, aby wdrożyć go w usłudze Tomcat. Jeśli chcesz tylko sprawdzić środowisko, możesz znaleźć przykład WAR w witrynie Apache Tomcat.
Aby uzyskać wskazówki dotyczące tworzenia aplikacji Java na platformie Azure, zobacz Tworzenie i wdrażanie aplikacji Java na platformie Azure.
Wdrażanie i uruchamianie aplikacji
Nawiąż połączenie z maszyną wirtualną przy użyciu klienta SSH. Aby uzyskać instrukcje, zobacz Connect via SSH with PuTTY (Nawiązywanie połączenia za pośrednictwem protokołu SSH za pomocą platformy PuTTY).
Aby zaktualizować serwer przy użyciu pakietu aplikacji, zatrzymaj usługę Tomcat:
sudo systemctl stop tomcat
Aby móc zapisywać w folderze webapps, dodaj użytkownika FTP do grupy Tomcat. Użytkownik FTP jest użytkownikiem zdefiniowanym podczas tworzenia maszyny wirtualnej w usłudze Azure Stack Hub.
sudo usermod -a -G tomcat <VM-user>
Aby wyczyścić folder aplikacji internetowych, a następnie załadować nową lub zaktualizowaną aplikację WAR, połącz się z maszyną wirtualną za pomocą narzędzia FileZilla. Aby uzyskać instrukcje, zobacz Connect with SFTP with FileZilla (Nawiązywanie połączenia za pomocą protokołu SFTP za pomocą usługi FileZilla).
a. Wyczyść TOMCAT_HOME/aplikacje internetowe.
b. Dodaj aplikację WAR do aplikacji TOMCAT_HOME/webapps (na przykład /opt/tomcat/webapps/).
Tomcat automatycznie rozszerza i wdraża aplikację. Można go wyświetlić przy użyciu utworzonej wcześniej nazwy DNS. Na przykład:
http://yourmachine.local.cloudapp.azurestack.external:8080/sample
Następne kroki
- Dowiedz się więcej na temat tworzenia aplikacji dla usługi Azure Stack Hub.
- Dowiedz się więcej o typowych wdrożeniach usługi Azure Stack Hub jako IaaS.
- Aby poznać język programowania Java i znaleźć dodatkowe zasoby dla języka Java, zobacz Java.com.