Sdílet prostřednictvím


Nasazení webové aplikace v Javě na virtuální počítač ve službě Azure Stack Hub

Můžete vytvořit virtuální počítač pro hostování webové aplikace v Javě ve službě Azure Stack Hub. V tomto článku nainstalujete, otevřete správné porty a nakonfigurujete server Apache Tomcat na virtuálním počítači s Linuxem ve službě Azure Stack Hub. Potom na server načtete soubor WAR (Java Web Application Resource). Soubor WAR slouží k distribuci kolekce souborů archivu Java (JAR), komprimovaných souborů, které obsahují prostředky Java, jako jsou třídy, text, obrázky, XML a HTML a další prostředky, které slouží k doručování webové aplikace.

Vytvoření virtuálního počítače

  1. Nastavte virtuální počítač ve službě Azure Stack Hub podle pokynů v tématu Nasazení virtuálního počítače s Linuxem pro hostování webové aplikace ve službě Azure Stack Hub.

  2. V podokně sítě virtuálních počítačů se ujistěte, že jsou přístupné následující porty:

    Přístav Protokol Popis
    80 HTTP Protokol HTTP (Hypertext Transfer Protocol) je protokol, který se používá k doručování webových stránek ze serverů. Klienti se připojují přes protokol HTTP s názvem DNS nebo IP adresou.
    443 HTTPS Protokol HTTPS (Hypertext Transfer Protocol Secure) je zabezpečená verze protokolu HTTP, která vyžaduje certifikát zabezpečení a umožňuje šifrovaný přenos informací.
    22 SSH Secure Shell (SSH) je šifrovaný síťový protokol pro zabezpečenou komunikaci. Pomocí tohoto připojení s klientem SSH nakonfigurujete virtuální počítač a nasadíte aplikaci.
    3389 RDP Volitelný. Protokol RDP (Remote Desktop Protocol) umožňuje připojení ke vzdálené ploše používat grafické uživatelské rozhraní na vašem počítači.
    8080 Zvyk Výchozí port pro službu Apache Tomcat. U produkčního serveru směrujete provoz přes 80 a 443.

Nainstalujte Javu

  1. Připojte se k virtuálnímu počítači pomocí klienta SSH. Pro pokyny viz Připojení přes SSH pomocí PuTTY.

  2. Na příkazovém řádku Bash na virtuálním počítači spusťte následující příkaz:

        sudo apt-get install default-jdk
    
  3. Ověřte instalaci. Stále připojeni k virtuálnímu počítači v relaci SSH spusťte následující příkaz:

        java -version
    

Instalace a konfigurace Tomcatu

  1. Připojte se k virtuálnímu počítači pomocí klienta SSH. Pokyny viz Připojte se přes SSH pomocí PuTTY.

  2. Vytvořte uživatele Tomcat následujícím způsobem:

    a. Spuštěním následujícího příkazu vytvořte novou skupinu Tomcat:

        sudo groupadd tomcat
    

    b. Vytvořte nového uživatele Tomcat. Přidejte tohoto uživatele do skupiny Tomcat s domovským adresářem /opt/tomcat. Do tohoto adresáře nasadíte Tomcat:

        sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
    
  3. Nainstalujte Tomcat následujícím způsobem:

    a. Získejte adresu URL pro tar pro nejnovější verzi Tomcat 8 ze stránky pro stažení Tomcat 8.

    b. Pomocí cURL stáhněte nejnovější verzi pomocí odkazu. Spusťte následující příkazy:

        cd /tmp 
        curl -O <URL for the tar for the latest version of Tomcat 8>
    

    c. Nainstalujte Tomcat do adresáře /opt/tomcat. Vytvořte složku a otevřete archiv:

        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/
    
  4. Aktualizujte oprávnění pro Tomcat spuštěním následujících příkazů:

        sudo chgrp -R tomcat /opt/tomcat
        sudo chmod -R g+r conf
        sudo chmod g+x conf
    
  5. Vytvořte systémový soubor služby, abyste mohli spustit Tomcat jako službu.

    a. Tomcat potřebuje vědět, kde jste nainstalovali Javu. Tato cesta se běžně označuje jako JAVA_HOME. Vyhledejte umístění spuštěním příkazu:

        sudo update-java-alternatives -l
    

    Výsledkem je něco podobného:

        Output
        java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64
    

    Hodnotu proměnné JAVA_HOME můžete vytvořit tak, že vezmete cestu z výstupu a přidáte /jre. Například pomocí předchozího příkladu /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre.

    b. K vytvoření systémového souboru služby použijte hodnotu z vašeho serveru:

        sudo nano /etc/systemd/system/tomcat.service
    

    c. Do souboru služby vložte následující obsah. V případě potřeby upravte hodnotu JAVA_HOMEtak, aby odpovídala hodnotě, kterou jste našli ve svém systému. Můžete také upravit nastavení přidělení paměti zadané v 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. Uložte a zavřete soubor.

    e. Znovu načtěte systémový proces démona, aby věděl o vašem souboru služby:

        sudo systemctl daemon-reload
    

    f. Spusťte službu Tomcat:

        sudo systemctl start tomcat
    

    g. Zadáním příkazu ověřte, že se spustil bez chyb:

        sudo systemctl status tomcat
    
  6. Ověřte server Tomcat. Tomcat používá port 8080 k přijímání konvenčních požadavků. Spuštěním následujícího příkazu povolte provoz do tohoto portu:

        sudo ufw allow 8080
    

    Pokud jste nepřidali pravidla portů příchozích portů pro virtuální počítač služby Azure Stack Hub, přidejte je teď. Další informace najdete v tématu Vytvoření virtuálního počítače.

  7. Otevřete prohlížeč ve stejné síti jako azure Stack Hub a otevřete server yourmachine.local.cloudapp.azurestack.external:8080.

    snímek obrazovky se stránkou Apache Tomcat

    Stránka Apache Tomcat na vašem serveru se načte. Dále nakonfigurujete server tak, aby vám umožnil přístup ke stavu serveru, aplikaci Správce a Správce hostitelů.

  8. Povolte soubor služby, aby se Při restartování serveru automaticky spouštěl Tomcat:

        sudo systemctl enable tomcat
    
  9. Pokud chcete umožnit přístup k rozhraní pro správu webu, nakonfigurujte server Tomcat.

    a. Upravte soubor tomcat-users.xml a definujte roli a uživatele, abyste se mohli přihlásit. Definujte uživatele pro přístup k manager-gui a admin-gui.

        sudo nano /opt/tomcat/conf/tomcat-users.xml
    

    b. Do oddílu <tomcat-users> přidejte následující prvky:

        <role rolename="tomcat"/>
        <user username="<username>" password="<password>" roles="tomcat,manager-gui,admin-gui"/>
    

    Konečný soubor může například vypadat nějak takto:

        <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. Uložte a zavřete soubor.

  10. Tomcat omezuje přístup k aplikacím Manager a Host Manager pouze na připojení přicházející ze serveru. Vzhledem k tomu, že instalujete Tomcat na virtuální počítač ve službě Azure Stack Hub, budete toto omezení chtít odebrat. Změňte omezení IP adres u těchto aplikací úpravou příslušných context.xml souborů.

    a. Aktualizujte context.xml v aplikaci Manager:

        sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
    

    b. Zakomentujte omezení IP adres, abyste povolili připojení odkudkoli, nebo přidejte IP adresu počítače, který používáte pro připojení ke službě 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. Uložte a zavřete soubor.

    d. Aktualizujte context.xml aplikaci Správce hostitelů s podobnou aktualizací:

        sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
    

    e. Uložte a zavřete soubor.

  11. Pokud chcete server aktualizovat pomocí změn, restartujte službu Tomcat:

        sudo systemctl restart tomcat
    
  12. Otevřete prohlížeč ve stejné síti jako azure Stack Hub a otevřete server: yourmachine.local.cloudapp.azurestack.external:8080.

    a. Chcete-li zkontrolovat stav serveru Tomcat a ověřit, zda máte přístup, vyberte Stav serveru.

    b. Přihlaste se pomocí svých přihlašovacích údajů tomcat.

    Apache Tomcat na virtuálním počítači služby Azure Stack Hub

Vytvoření aplikace

Budete muset vytvořit WAR pro nasazení do Tomcatu. Pokud chcete zkontrolovat pouze své prostředí, můžete najít příklad WAR na webu Apache Tomcat.

Pokyny k vývoji aplikací v Javě v Azure najdete v tématu Sestavení a nasazení aplikací v Javě v Azure.

Nasazení a spuštění aplikace

  1. Připojte se k virtuálnímu počítači pomocí klienta SSH. Pokyny najdete v tématu Připojení přes SSH pomocíPuTTY .

  2. Pokud chcete server aktualizovat pomocí balíčku aplikace, zastavte službu Tomcat:

        sudo systemctl stop tomcat
    
  3. Pokud chcete být schopni zapisovat do složky webových aplikací, přidejte uživatele FTP do skupiny Tomcat. Uživatel FTP je uživatel, který definujete při vytváření virtuálního počítače ve službě Azure Stack Hub.

        sudo usermod -a -G tomcat <VM-user>
    
  4. Pokud chcete vymazat složku webových aplikací a pak načíst novou nebo aktualizovanou verzi WAR, připojte se k virtuálnímu počítači pomocí FileZilla. Pokyny najdete v tématu Připojení pomocí SFTP pomocí fileZilla.

    a. Vymažte TOMCAT_HOME/webapps.

    b. Přidejte WAR do TOMCAT_HOME/webapps (například /opt/tomcat/webapps/).

  5. Tomcat automaticky rozbalí a nasadí aplikaci. Můžete ho zobrazit pomocí názvu DNS, který jste vytvořili dříve. Například:

       http://yourmachine.local.cloudapp.azurestack.external:8080/sample
    

Další kroky