Kaip paleisti kelias žiniatinklio programas viename „Apache Tomcat“ serveryje


Apache Tomcat yra atvirojo kodo žiniatinklio sudėtinis rodinys, leidžiantis diegti Java Servlet, JSP ir Web Sockets. žiniatinklio serveris, maitinamas Java kodu. Jis taip pat gali būti identifikuojamas kaip kelių platformų serverio talpykla arba žiniatinklio talpykla.

Paprasčiausiai, Tomcat yra labai populiarus tarp daugelio pramonės suinteresuotųjų šalių, nes turi daug pranašumų, palyginti su kitais rinkoje esančiais žiniatinklio konteineriais. Galite sukurti žiniatinklio archyvus iš savo „Java“ projekto ir tiesiog įdiegti juos „Tomcat“ konteineryje, kad priglobtumėte HTTP žiniatinklio serverį, užkoduotą Java. Pramonės atstovai renkasi apache tomcat, o ne kitus konteinerius dėl šių pranašumų.

  1. Lengvas svoris.
  2. Plačiai naudojamas.
  3. Daug greičiau nei kiti konteineriai.
  4. Lengva konfigūruoti.
  5. Labai lankstus.

Paprastai apache tomcat yra patogus produktas, suteikiantis inžinieriams erdvės įdiegti savo WAR artefaktus (žiniatinklio archyvus) su minimaliais konfigūracijos pakeitimais.

Šis įrašas skirtas auditorijai, kuri jau naudojasi tomcat ir žino, kaip paleisti ir naudoti apache tomcat variklį.

Apache tomcat WAR turėtų būti įtrauktas į katalogą webapps, kurį sudėtinis rodinys juos diegia pagal numatytuosius nustatymus. Paprasčiausiai katalogas webapps veikia kaip pagrindinis Java kodo konteineris, kad tomcat galėtų įdiegti jį kaip žiniatinklio serverį.

Esant scenarijui, kai turime priglobti daugiau nei vieną žiniatinklio serverį iš vieno tomcat konteinerio, galite naudoti šį įrašą kaip vadovą, kaip tai padaryti. Šiame straipsnyje parodysiu, kaip įdiegti kelias žiniatinklio programas arba du žiniatinklio serverius viename tomcate.

Būtinos sąlygos: Java turi būti įdiegta serveryje. Pageidautina 1.7.x arba naujesnė. Šioje mokymo programoje įdiegiau Java 1.7, nes naudoju 8.0.37 „Tomcat“ versiją.

Galite įdiegti Java naudodami paketų tvarkyklę, pvz., yum arba apt, kaip parodyta:

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

1 veiksmas: įdiekite „Apache Tomcat Server“.

1. Pirmiausia sukurkite atskirą tomcat naudotoją naudodami root paskyrą.

useradd tomcat
passwd tomcat

Dabar prisijunkite kaip tomcat naudotojas ir atsisiųskite naujausią apache tomcat paketą iš oficialios svetainės čia: https://tomcat.apache.org/ arba galite naudoti šią komandą wget, kad atsisiųstumėte tiesiai iš terminalo .

Šiuo atveju atsisiunčiau „Apache Tomcat“, 8.5.5, kuri yra viena iš naujausių iki šiol išleistų stabilių versijų.

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

2. Atsisiuntę failą išskleiskite turinį naudodami komandą tar ir peržiūrėkite katalogo struktūrą, kaip parodyta:

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

2 veiksmas: sukonfigūruokite „Apache Tomcat“ serverį

3. Konfigūracijos pakeitimas, kurio ieškome, yra conf kataloge, naudojamas visiems konfigūracijos failams, padedantiems paleisti tomcat, įdėti.

Katalogo conf turinys atrodo taip, kaip nurodyta toliau.

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. Šiuo atveju man svarbus failas server.xml. Taigi aš neketinu išsamiai paaiškinti kitų failų ar katalogų.

server.xml yra konfigūracijos failas, nurodantis tomcat, kurį prievadą jį paleisti, kokį katalogo turinį įdiegti ir daug kitų pagrindinių ir pagrindinių konfigūracijų.

Iš esmės tai atrodo taip, kaip toliau, kai atidarote failą.

vim server.xml

3 veiksmas: žiniatinklio programų diegimas „Apache Tomcat“.

5. Dabar „Apache tomcat“ įdiegsime naują žiniatinklio programą, pirmiausia suraskime vietą, kur uždaryta paslaugos žyma ir įterpsime žemiau esančias eilutes po pirmojo uždarymo. serviso žyma.

<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>

Kaip matote, naujai įterptame įraše pakeičiau jungties prievadą į 7070, nes numatytasis „tomcat“ prasideda prievadu 8080. Visiškai nustačius veiks du žiniatinklio serveriai 8080 ir 7070 prievaduose.

6. Išsaugoję server.xml atliktą pakeitimą, pagrindiniame apache sistemoje sukurkite katalogą webapps2.

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

Jei pastebėsite server.xml naują įrašą, kurį pateikiau, turėtumėte pamatyti, kad paslaugos pavadinimas, programos bazė ir variklis pavadinti webapps2. Dėl šios priežasties sukūriau katalogą pavadinimu webapps2. Galite sukurti tokį įrašą, kokio norite, tačiau būtinai pakeiskite įrašą pagal poreikį.

7. Kad įsitikintumėte, jog antrasis žiniatinklio serveris veikia ir veikia, nukopijavau webapps katalogo turinį į webapps2 katalogą.

cp -r webapps/* webapps2/

8. Dabar įdomi dalis. Mes paleisime serverį ir patikrinsime, ar jis veikia. Eikite į bin katalogą ir paleiskite scenarijų startup.sh. Žurnalus galite peržiūrėti faile catalina.out, kuris yra žurnalų kataloge.

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. Jei atsižvelgsite į žurnalus, pamatysite, kad ir webapps, ir webapps2 yra įdiegtos ir programa paleidžiama be jokių problemų .

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. Pagal šį scenarijų mano naudojamo serverio IP yra 172.16.1.39 ir matote, kad viename „Tomcat“ konteineryje galiu paleisti du žiniatinklio serverius.

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

Tikimės, kad šis straipsnis jums visiems bus naudingas ir malonus. Susisiekite su TecMint ir nedvejodami susisiekite su manimi, jei turite klausimų dėl šio straipsnio.