Vyhledávání na webu

Jak spouštět více webových aplikací na jednom serveru Apache Tomcat


Apache Tomcat je webový kontejner s otevřeným zdrojovým kódem, který vám umožňuje nasadit Java Servlet, JSP a Web Sockets ke spuštění. webový server využívající Java kód. Může být také identifikován jako multiplatformní servletový kontejner nebo webový kontejner.

Jednoduše, Tomcat je mezi mnoha průmyslovými investory velmi oblíbený díky mnoha výhodám oproti jiným webovým kontejnerům na trhu. Můžete vytvořit webové archivy ze svého projektu Java a jednoduše je nasadit do kontejneru tomcat pro hostování webového serveru HTTP kódovaného Java. Průmyslová odvětví volí apache kocour před jiným kontejnerem kvůli následujícím výhodám.

  1. Lehká váha.
  2. Široce používaný.
  3. Mnohem rychlejší než jiné kontejnery.
  4. Snadná konfigurace.
  5. Velmi flexibilní.

Apache tomcat je obvykle uživatelsky přívětivý produkt, který poskytuje technikům prostor pro nasazení jejich WAR artefaktů (Web ARchives) s minimálními změnami konfigurace.

Tento příspěvek je zaměřen na publikum, které již používá kocour a ví, jak spustit a používat apache tomcat engine.

V Apache tomcat by WARs měly být umístěny do adresáře webapps, do kterého je kontejner standardně nasazuje. Jednoduše řečeno, adresář webapps funguje jako hlavní kontejner kódu Java pro kocoura, aby jej mohl nasadit jako webový server.

Ve scénáři, kdy potřebujeme hostit více než jeden webový server z jednoho kontejneru kocourků, můžete tento příspěvek použít jako průvodce, jak toho dosáhnout. Z tohoto článku vám ukážu, jak nasadit více webových aplikací nebo dva webové servery v rámci jednoho kocoura.

Předpoklady: Na serveru by měla být nainstalována Java. Nejlépe 1.7.x nebo vyšší. V tomto tutoriálu mám nainstalovanou Java 1.7, protože používám kocoura verze 8.0.37.

Java můžete nainstalovat pomocí správce balíčků, jako je yum nebo apt, jak je znázorněno:

yum install java              [On CentOS based Systems]
apt-get install default-jre   [On Debian based Systems]

Krok 1: Nainstalujte Apache Tomcat Server

1. Nejprve vytvořte samostatného uživatele tomcat pomocí účtu root.

useradd tomcat
passwd tomcat

Nyní se přihlaste jako uživatel tomcat a stáhněte si nejnovější balíček tomcat apache z oficiálních stránek zde: https://tomcat.apache.org/ nebo můžete použít následující příkaz wget ke stažení přímo v terminálu .

V tomto případě si stahuji Apache Tomcat, 8.5.5, což je jedna z nejnovějších stabilních verzí, které byly dosud vydány.

wget http://redrockdigimark.com/apachemirror/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz

2. Po stažení souboru rozbalte obsah pomocí příkazu tar a zobrazte adresářovou strukturu, jak je znázorněno:

tar -xvf apache-tomcat-8.5.5.tar.gz
cd apache-tomcat-8.5.5/
ls -l
total 112
drwxr-x---. 2 tomcat tomcat  4096 Sep 29 11:26 bin
drwx------. 2 tomcat tomcat  4096 Sep  1 01:23 conf
drwxr-x---. 2 tomcat tomcat  4096 Sep 29 11:26 lib
-rw-r-----. 1 tomcat tomcat 57092 Sep  1 01:23 LICENSE
drwxr-x---. 2 tomcat tomcat  4096 Sep  1 01:21 logs
-rw-r-----. 1 tomcat tomcat  1723 Sep  1 01:23 NOTICE
-rw-r-----. 1 tomcat tomcat  7063 Sep  1 01:23 RELEASE-NOTES
-rw-r-----. 1 tomcat tomcat 15946 Sep  1 01:23 RUNNING.txt
drwxr-x---. 2 tomcat tomcat  4096 Sep 29 11:26 temp
drwxr-x---. 7 tomcat tomcat  4096 Sep  1 01:22 webapps
drwxr-x---. 2 tomcat tomcat  4096 Sep  1 01:21 work

Krok 2: Nakonfigurujte server Apache Tomcat

3. Změna konfigurace, kterou hledáme, leží v adresáři conf a používá se k umístění všech konfiguračních souborů, které pomáhají kocourkovi spustit.

Obsah adresáře conf vypadá níže.

cd conf/
ls -l
total 224
-rw-------. 1 tomcat tomcat  12502 Sep  1 01:23 catalina.policy
-rw-------. 1 tomcat tomcat   7203 Sep  1 01:23 catalina.properties
-rw-------. 1 tomcat tomcat   1338 Sep  1 01:23 context.xml
-rw-------. 1 tomcat tomcat   1149 Sep  1 01:23 jaspic-providers.xml
-rw-------. 1 tomcat tomcat   2358 Sep  1 01:23 jaspic-providers.xsd
-rw-------. 1 tomcat tomcat   3622 Sep  1 01:23 logging.properties
-rw-------. 1 tomcat tomcat   7283 Sep  1 01:23 server.xml
-rw-------. 1 tomcat tomcat   2164 Sep  1 01:23 tomcat-users.xml
-rw-------. 1 tomcat tomcat   2633 Sep  1 01:23 tomcat-users.xsd
-rw-------. 1 tomcat tomcat 168133 Sep  1 01:23 web.xml

4. V tomto případě je pro mě důležitý soubor server.xml. Nebudu tedy podrobně vysvětlovat další soubory nebo adresáře.

server.xml je konfigurační soubor, který sděluje tomcatu, který port jej má spustit, který obsah adresáře nasadit a mnoho dalších hlavních a základních konfigurací.

Po otevření souboru to v podstatě vypadá jako níže.

vim server.xml

Krok 3: Nasazení webových aplikací v Apache Tomcat

5. Nyní nasadíme novou webovou aplikaci v Apache tomcat, nejprve najdeme místo, kde je servisní značka uzavřena a vložíme pod řádky za první zavřenou servisní štítek.

<Service name="webapps2">
    <Connector port="7070" maxHttpHeaderSize="7192"
        maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
        enableLookups="false" redirectPort="7443" acceptCount="100"
        connectionTimeout="20000" disableUploadTimeout="true" />
        <Connector port="7072" 
        enableLookups="false" redirectPort="7043" protocol="AJP/1.3" />

    <Engine name="webapps2" defaultHost="localhost">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
            resourceName="UserDatabase"/>
            <Host name="localhost" appBase="webapps2"
                unpackWARs="true" autoDeploy="true"
                 xmlValidation="false" xmlNamespaceAware="false">
            </Host>
    </Engine>
</Service>

Jak vidíte, v nově vložené položce jsem změnil port konektoru na 7070, protože výchozí kocour začíná portem 8080. Po úplném nastavení budou pod porty 8080 a 7070 běžet dva webové servery.

6. Po uložení změny provedené v server.xml vytvořte v apache adresář s názvem webapps2 v hlavním serveru apache.

cd /home/tomcat/apache-tomcat-8.5.5/
mkdir webapps2

Pokud si všimnete nového záznamu server.xml, který jsem uvedl, měli byste vidět, že název služby, základ aplikace a engine jsou pojmenovány jako webapps2. To je důvod, proč jsem vytvořil adresář s názvem webapps2. Můžete si jej vytvořit, jak si přejete, ale ujistěte se, že jste v záznamu provedli potřebné změny.

7. Abych se ujistil, že druhý webový server běží a je v provozu, zkopíroval jsem obsah adresáře webapps do adresáře webapps2.

cp -r webapps/* webapps2/

8. Nyní ta vzrušující část. Spustíme server a uvidíme, zda funguje. Přejděte do adresáře bin a spusťte skript startup.sh. Logy si můžete prohlédnout v souboru catalina.out, který se nachází v adresáři logs.

cd bin/
./startup.sh
Using CATALINA_BASE:   /home/tomcat/apache-tomcat-8.5.5
Using CATALINA_HOME:   /home/tomcat/apache-tomcat-8.5.5
Using CATALINA_TMPDIR: /home/tomcat/apache-tomcat-8.5.5/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /home/tomcat/apache-tomcat-8.5.5/bin/bootstrap.jar:/home/tomcat/apache-tomcat-8.5.5/bin/tomcat-juli.jar
Tomcat started.

9. Pokud se podíváte na protokoly, uvidíte, že webapps i webapps2 jsou nasazeny a aplikace je spuštěna bez problémů .

cd logs/
tail -25f catalina.out 
29-Sep-2016 12:13:51.210 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/examples
29-Sep-2016 12:13:51.661 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/examples has finished in 452 ms
29-Sep-2016 12:13:51.664 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/docs
29-Sep-2016 12:13:51.703 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/docs has finished in 39 ms
29-Sep-2016 12:13:51.704 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/host-manager
29-Sep-2016 12:13:51.744 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps/host-manager has finished in 39 ms
29-Sep-2016 12:13:51.748 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-nio-8080]
29-Sep-2016 12:13:51.767 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [ajp-nio-8009]
29-Sep-2016 12:13:51.768 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service webapps2
29-Sep-2016 12:13:51.768 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.5
29-Sep-2016 12:13:51.777 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/manager
29-Sep-2016 12:13:51.879 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/manager has finished in 102 ms
29-Sep-2016 12:13:51.879 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/ROOT
29-Sep-2016 12:13:51.915 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/ROOT has finished in 35 ms
29-Sep-2016 12:13:51.927 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/examples
29-Sep-2016 12:13:52.323 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log ContextListener: contextInitialized()
29-Sep-2016 12:13:52.337 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log SessionListener: contextInitialized()
29-Sep-2016 12:13:52.341 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/examples has finished in 414 ms
29-Sep-2016 12:13:52.341 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/docs
29-Sep-2016 12:13:52.371 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/docs has finished in 29 ms
29-Sep-2016 12:13:52.371 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/host-manager
29-Sep-2016 12:13:52.417 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /home/tomcat/apache-tomcat-8.5.5/webapps2/host-manager has finished in 46 ms
...

10. V tomto scénáři je IP serveru, který jsem použil, 172.16.1.39 a můžete vidět, že bych mohl spustit dva webové servery v jednom kontejneru kocourků.

http://172.16.1.39:8080   [1st Web App]
http://172.16.1.39:7070   [2nd Web App]

Doufám, že vám všem bude tento článek užitečný a příjemný. Zůstaňte v kontaktu se společností TecMint a neváhejte mě kontaktovat v případě jakýchkoli dotazů týkajících se tohoto článku.