Kā palaist vairākas tīmekļa lietojumprogrammas vienā Apache Tomcat serverī


Apache Tomcat ir atvērtā koda tīmekļa konteiners, kas ļauj izvietot Java servletus, JSP un Web Sockets, lai palaistu tīmekļa serveri, kuru darbina Java kods. To var arī identificēt kā starpplatformu servletu konteineru vai tīmekļa konteineru.

Vienkārši Tomcat ir ļoti populārs daudzu rūpniecības ieinteresēto personu vidū, jo tam ir daudz priekšrocību salīdzinājumā ar citiem tīmekļa konteineriem tirgū. Jūs varat izveidot tīmekļa arhīvus no sava Java projekta un vienkārši izvietot to runča konteinerā, lai mitinātu HTTP tīmekļa serveri, kuru kodē Java. Nozares izvēlas apache runci, nevis citu konteineru, šādu priekšrocību dēļ.

  1. Viegls svars.
  2. plaši izmantots.
  3. Daudz ātrāk nekā citi konteineri.
  4. Viegli konfigurējams.
  5. Ļoti elastīga.

Parasti apache runcat ir lietotājam draudzīgs produkts, kas dod inženieriem iespēju izvietot savus WAR artefaktus (Web ARchives) ar minimālām konfigurācijas izmaiņām.

Šis ieraksts ir paredzēts auditorijai, kas jau izmanto runci un zina, kā sākt un izmantot apache runča motoru.

Apache runcī WAR ir jāievieto direktorijā webapps , kurā konteiners tos izvieto pēc noklusējuma. Vienkārši webapps direktorijs darbojas kā galvenais Java koda konteiners, lai runcis to izvietotu kā tīmekļa serveri.

Scenārijā, kurā mums no viena runčuka konteinera ir jāuzņem vairāk nekā viens tīmekļa serveris, varat to izmantot kā ceļvedi. Es jums parādīšu, kā vienā runcī no šī raksta izvietot vairākas tīmekļa lietojumprogrammas vai divus tīmekļa serverus.

Priekšnosacījumi: Java jāuzstāda serverī. Vēlams 1.7.x vai jaunāka versija. Šajā apmācībā man ir instalēta Java 1.7, jo es izmantoju runču versiju 8.0.37.

Java var instalēt, izmantojot pakotņu pārvaldnieku, piemēram, yum vai apt, kā parādīts:

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

1. darbība: instalējiet Apache Tomcat Server

1. Vispirms izveidojiet atsevišķu lietotāju runcis , izmantojot root kontu.

# useradd tomcat
# passwd tomcat

Tagad piesakieties kā runču lietotājs un lejupielādējiet jaunāko apache runču paketi no oficiālās vietnes šeit: komandu wget, lai lejupielādētu tieši terminālā.

Šajā gadījumā es lejupielādēju Apache Tomcat 8.5.5, kas ir viena no jaunākajām stabilajām versijām, kas līdz šim izlaistas.

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

2. Kad fails ir lejupielādēts, atsaviniet saturu, izmantojot tar komandu, un apskatiet direktoriju struktūru, kā parādīts:

$ 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. darbība: konfigurējiet Apache Tomcat Server

3. Konfigurācijas izmaiņas, kuras mēs meklējam, atrodas conf direktorijā, tiek izmantotas, lai ievietotu visus konfigurācijas failus, kas palīdz runcim startēt.

Conf direktorija saturs izskatās zemāk.

$ 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. Šajā gadījumā man svarīgs ir fails server.xml . Tāpēc es nedarīšu padziļinātu skaidrojumu par citiem failiem vai direktorijiem.

Server.xml ir konfigurācijas fails, kas runcim norāda, kurš ports to jāuzsāk, kura direktorija saturs jāizvieto, kā arī daudzas citas galvenās un pamata konfigurācijas.

Pēc faila atvēršanas tas būtībā izskatās zemāk.

$ vim server.xml

3. darbība. Tīmekļa lietotņu izvietošana Apache Tomcat

5. Tagad Apache runcī izvietosim jaunu tīmekļa lietojumprogrammu, vispirms atrodiet vietu, kur pakalpojuma tags ir aizvērts , un ievietojiet zem rindiņām aiz pirmā aizvērtā pakalpojuma taga.

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

Kā redzat, tikko ievietotajā ierakstā esmu mainījis savienotāja portu uz 7070, jo noklusējuma runcis sākas ar 8080. Pēc tam, kad tas ir pilnībā iestatīts, zem 8080 un 7070 portiem darbosies divi tīmekļa serveri.

6. Pēc izmaiņu saglabāšanas, kas veiktas server.xml , apache galvenajā mapē izveidojiet direktoriju ar nosaukumu webapps2 .

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

Ja novērojat jaunu ievadīto ierakstu server.xml , jums vajadzētu redzēt, ka pakalpojuma nosaukums, lietotnes bāze un dzinējs ir nosaukti kā webapps2. Tāpēc es izveidoju direktoriju ar nosaukumu webapps2. Jūs varat izveidot tādu, kā vēlaties, taču pārliecinieties, ka veicat izmaiņas ierakstā pēc nepieciešamības.

7. Lai pārliecinātos, ka otrais tīmekļa serveris darbojas un darbojas, es nokopēju webapps direktorija saturu uz webapps2 direktoriju.

$ cp -r webapps/* webapps2/

8. Tagad aizraujošā daļa. Mēs palaidīsim serveri un pārbaudīsim, vai tas darbojas. Atveriet direktoriju bin un izpildiet skriptu startup.sh . Žurnālus varat skatīt failā catalina.out , kas atrodas žurnālu direktorijā.

$ 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. Ja atsaucaties uz žurnāliem, varēsit redzēt, ka ir izvietoti gan webapps , gan webapps2 un lietotne tiek palaista bez problēmā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. Šajā scenārijā manis izmantotā servera IP ir 172.16.1.39, un jūs varat redzēt, ka es varētu sākt divus tīmekļa serverus vienā runča konteinerā.

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

Ceru, ka jums visiem šis raksts būs noderīgs un patīkams. Uzturiet saziņu ar TecMint un sazinieties ar mani, ja jums ir kādi jautājumi par šo rakstu.