Bir Apache Tomcat serwerinde köp sanly web programmasyny nädip işletmeli


Apache Tomcat, açyk kodly web konteýner bolup, Java kody bilen işleýän web serwerini işletmek üçin Java Servlets, JSP we Web Sockets ýerleşdirmäge mümkinçilik berýär. Şeýle hem, platforma serwet konteýner ýa-da web konteýner hökmünde kesgitlenip bilner.

Plyönekeý söz bilen aýdanyňda, Tomkat bazardaky beýleki web konteýnerlerinden köp artykmaçlygy sebäpli köp sanly gyzyklanýan taraplaryň arasynda meşhur. Java proýektiňizden web arhiwini döredip, Java tarapyndan kodlanan HTTP web serwerini ýerleşdirmek üçin ony tomkat konteýnerinde ýerleşdirip bilersiňiz. Senagatlar aşakdaky artykmaçlyklar sebäpli beýleki konteýnerlerden apache tomcat saýlaýarlar.

  1. Lighteňil agram.
  2. Giňden ulanylýar.
  3. Beýleki gaplardan has çalt.
  4. Sazlamak aňsat.
  5. Örän çeýe.

Adatça, “apache tomcat” ulanyjylara amatly önüm bolup, in engineenerlere iň az konfigurasiýa üýtgeşmeleri bilen WAR artefaktlaryny (Web ARchives) ýerleşdirmäge mümkinçilik berýär.

Bu ýazgy eýýäm tomcat ulanýan we apache tomcat motoryny nädip başlamalydygyny we ulanmalydygyny bilýän tomaşaçylary nyşana alýar.

Apache tomcat-da, konteýneriň adaty ýagdaýda ýerleşdirýän webapps katalogyna WAR goýulmalydyr. Önekeýje, webapps katalogy, tomcat üçin web serweri hökmünde ýerleşdirilmegi üçin Java kodunyň esasy konteýni hökmünde çykyş edýär.

Bir tomkat konteýnerinden birden köp web serwerini ýerleşdirmeli bolan bir ssenariýada, bu ýazgyny ýerine ýetirmek üçin gollanma hökmünde ulanyp bilersiňiz. Bu makaladan bir tomkatyň içinde birnäçe web programmasyny ýa-da iki web serwerini nädip ýerleşdirmelidigini görkezmekçi.

Zerur şertler: Java serwerde gurulmalydyr. Iň gowusy 1.7.x ýa-da ondan ýokary. Bu gollanmada tomcat 8.0.37 wersiýasyny ulananymdan bäri Java 1.7 gurdum.

Java paket dolandyryjyňyzy görkezilişi ýaly ýum ýa-da apt ulanyp gurup bilersiňiz:

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

1-nji ädim: Apache Tomcat serwerini guruň

1. Ilki bilen kök hasaby ulanyp aýratyn tomcat ulanyjy dörediň.

# useradd tomcat
# passwd tomcat

Indi tomcat ulanyjysy hökmünde giriň we iň soňky apache tomcat bukjasyny resmi saýtdan göçürip alyň: terminalda gönüden-göni göçürip almak üçin wget buýrugy.

Bu ýagdaýda, şu wagta çenli çykan iň soňky durnukly wersiýalardan biri bolan Apache Tomcat, 8.5.5-i göçürip alýaryn.

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

2. Faýl göçürilenden soň, tar buýrugy bilen mazmuny gysyň we bukjanyň gurluşyny görkezilişi ýaly görüň:

$ 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-nji ädim: Apache Tomcat serwerini sazlaň

3. Gözleýän konfigurasiýa üýtgemämiz, bukjanyň içinde ýerleşýär, tomcat-yň işlemegine kömek edýän ähli konfigurasiýa faýllaryny ýerleşdirmek üçin ulanylýar.

Conf katalogynyň mazmuny aşakdaky ýaly görünýär.

$ 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. Bu ýagdaýda meniň üçin möhüm zat server.xml faýly. Şonuň üçin beýleki faýllar ýa-da kataloglar barada çuňňur düşündiriş bermekçi däl.

Server.xml, haýsy porta başlamalydygyny, haýsy katalog mazmunyny ýerleşdirmelidigini we başga-da köp esasy we esasy konfigurasiýany tomcata aýdýan konfigurasiýa faýlydyr.

Faýly açanyňyzdan soň esasan aşakdaky ýaly görünýär.

$ vim server.xml

3-nji ädim: Apache Tomcat-da web programmalaryny ýerleşdirmek

5. Indi Apache tomcat-da täze web programmasy ýerleşdireris, ilki bilen hyzmat belliginiň ýapylan ýerini taparys we ilkinji ýapyk hyzmat belliginden soň aşakdaky setirleri goýarys.

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

Görşüňiz ýaly, deslapky tomkat 8080-nji portdan başlany bäri, täze girizilen ýazgyda birleşdiriji porty 7070-e üýtgetdim. Muny doly guranyňyzdan soň 8080 we 7070 portlaryň aşagynda işleýän iki web serweri bolar.

6. server.xml üýtgedilen üýtgeşmäni ýatda saklanyňyzdan soň, apache esasy böleginde webapps2 atly katalog dörediň.

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

Meniň beren server.xml täze ýazgymy synlasaňyz, hyzmatyň adynyň, programma bazasynyň we hereketlendirijiniň webapps2 diýip atlandyrylýandygyny görmeli. Şol sebäpden webapps2 atly katalogy döretdim. Isleýşiňiz ýaly döredip bilersiňiz, ýöne ýazga zerur bolanda üýtgeşmeler girizýändigiňize göz ýetiriň.

7. Ikinji web serweriniň işleýändigine we işleýändigine göz ýetirmek üçin webapps katalogynyň mazmunyny webapps2 katalogyna göçürdim.

$ cp -r webapps/* webapps2/

8. Indi tolgundyryjy bölüm. Serweri işe girizip, işleýändigini ýa-da ýokdugyny göreris. bin katalogyna giriň we startup.sh skriptini ýerine ýetiriň. Logurnallary bukjada ýerleşýän catalina.out faýlynda görüp bilersiňiz.

$ 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. surnallara ýüz tutsaňyz, web sahypalary we webapps2 ikisiniň hem ýerleşdirilendigini we programma hiç hili kynçylyksyz işe başlandygyny görüp bilersiňiz.

$ 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. Bu ssenariýada, ulanan serwerimiň IP-si 172.16.1.39 bolup, iki sany web serwerini bir tomkat konteýnerinde başlap biljekdigimi görüp bilersiňiz.

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

Bu makalany hemmäňiz peýdaly we hezil taparsyňyz diýip umyt edýärin. TecMint bilen habarlaşyň we bu makala degişli islendik soraglar üçin maňa arkaýyn boluň.