Giunsa Pagdagan ang Daghang Mga Aplikasyon sa Web sa Usa ka Apache Tomcat Server


Ang Apache Tomcat usa ka open source nga sudlanan sa web nga nagtugot kanimo sa pag-deploy sa Java Servlets, JSP ug Web Sockets aron magpadagan sa usa ka web server nga gipadagan sa Java code. Mahimo usab kini mailhan ingon usa ka sulud sa servlet nga cross-platform o usa ka sulud sa web.

Sa yano, ang Tomcat usa ka sikat kaayo sa daghang mga stakeholder sa industriya tungod sa daghang mga bentaha sa ubang mga sulud sa web sa merkado. Makahimo ka og mga web archive gikan sa imong proyekto sa Java ug i-deploy lang kini sulod sa usa ka tomcat container aron mag-host og HTTP web server nga gi-code sa Java. Gipili sa mga industriya ang apache tomcat kay sa ubang mga sudlanan tungod sa mosunod nga mga bentaha.

  1. Gaan nga timbang.
  2. Daghang gigamit.
  3. Mas paspas kay sa ubang mga sudlanan.
  4. Sayon i-configure.
  5. Flexible kaayo.

Kasagaran, ang apache tomcat usa ka user-friendly nga produkto nga naghatag sa mga inhenyero og luna sa pag-deploy sa ilang WAR artifacts (Web ARchives) nga adunay gamay nga kausaban sa configuration.

Gipunting niini nga post ang usa ka mamiminaw nga naggamit na sa tomcat ug nahibal-an kung unsaon pagsugod ug paggamit sa apache tomcat engine.

Sa apache tomcat, ang mga WAR kinahanglan ibutang sa webapps nga direktoryo diin ang sudlanan nag-deploy niini pinaagi sa default. Sa yano, ang direktoryo sa webapps naglihok isip nag-unang sudlanan sa Java code alang sa tomcat aron i-deploy kini isip web server.

Sa usa ka senaryo nga kinahanglan namon nga mag-host labaw pa sa usa ka web server gikan sa usa ka sudlanan nga tomcat, mahimo nimong gamiton kini nga post ingon usa ka giya aron matuman kini. Ipakita ko kanimo kung giunsa ang pag-deploy sa daghang mga aplikasyon sa web o duha nga mga web server sa sulod sa usa ka tomcat gikan sa kini nga artikulo.

Kinahanglanon: Ang Java kinahanglan i-install sa server. Mas maayo nga 1.7.x o labaw pa. Sa kini nga tutorial naa koy Java 1.7 nga na-install sukad nga gigamit nako ang tomcat nga bersyon 8.0.37.

Mahimo nimong i-install ang Java gamit ang imong manager sa package nga yum o apt sama sa gipakita:

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

Lakang 1: I-install ang Apache Tomcat Server

1. Una paghimo ug bulag nga tomcat user gamit ang root account.

# useradd tomcat
# passwd tomcat

Karon pag-login isip tomcat user ug i-download ang pinakabag-o nga apache tomcat bundle gikan sa opisyal nga site dinhi: wget command nga i-download direkta sa terminal.

Niini nga kaso, akong gi-download ang Apache Tomcat, 8.5.5, nga usa sa pinakabag-o nga stable nga bersyon nga gipagawas karon.

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

2. Sa higayon nga ma-download na ang file, uncompress ang sulod gamit ang tar command ug tan-awa ang directory structure sama sa gipakita:

$ 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

Lakang 2: I-configure ang Apache Tomcat Server

3. Ang kausaban sa configuration nga atong gipangita anaa sa sulod sa conf directory, gigamit sa pagbutang sa tanang configuration files nga makatabang sa tomcat sa pagsugod.

Ang sulud sa direktoryo sa conf ingon sa ubos.

$ 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. Niini nga kaso, ang importante kanako mao ang server.xml file. Mao nga dili ko maghimo usa ka lawom nga pagpatin-aw bahin sa ubang mga file o direktoryo.

Ang server.xml mao ang configuration file nga nagtug-an sa tomcat kung asa nga port ang sugdan niini, unsa nga directory content ang i-deploy ug daghan pa nga nag-una ug basic configurations.

Kasagaran kini tan-awon sama sa ubos pagkahuman nimo ablihan ang file.

$ vim server.xml

Lakang 3: Pag-deploy sa Web Apps sa Apache Tomcat

5. Karon mag-deploy kami og bag-ong web application sa Apache tomcat, pangitaa una ang dapit diin ang service tag gisira ug isulod sa ubos nga mga linya human sa unang closed service tag.

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

Sama sa imong nakita, akong giusab ang connector port ngadto sa 7070 sa bag-ong gisulod nga entry sukad ang default tomcat nagsugod sa port 8080. Human sa hingpit nga pag-set up niini adunay duha ka web server nga nagdagan ubos sa mga port 8080 ug 7070.

6. Human ma-save ang pagbag-o nga gihimo sa server.xml, paghimo og direktoryo sa apache nga gitawag webapps2 sulod sa apache main.

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

Kung imong maobserbahan ang server.xml bag-ong entry nga akong gihatag, kinahanglan nimo nga makita nga ang ngalan sa serbisyo, base sa app ug ang makina ginganlan nga webapps2. Mao kana ang hinungdan nga akong gibuhat ang direktoryo nga ginganlag webapps2. Makahimo ka og usa sumala sa imong gusto, apan siguruha nga maghimo ka og mga pagbag-o sa entry kung gikinahanglan.

7. Aron masiguro nga ang ikaduha nga web server anaa na ug nagdagan, akong gikopya ang sulod sa webapps directory ngadto sa webapps2 directory.

$ cp -r webapps/* webapps2/

8. Karon ang kulbahinam nga bahin. Atong sugdan ang server ug tan-awon kung nagtrabaho ba kini. Adto sa bin direktoryo ug i-execute ang startup.sh script. Mahimo nimong tan-awon ang mga log sa catalina.out file nga anaa sa logs directory.

$ 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. Kon imong i-refer ang mga log imong makita nga ang duha webapps ug webapps2 kay gipakatap ug ang app gisugdan nga walay bisan unsang isyu.

$ 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. Niini nga senaryo, ang IP sa server nga akong gigamit mao ang 172.16.1.39 ug imong makita nga makasugod ko og duha ka web server sulod sa usa ka tomcat container.

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

Hinaot nga makaplagan ninyong tanan nga mapuslanon ug makalingaw kining artikuloha. Padayon sa pagkontak sa TecMint ug ayaw kabalaka sa pagkontak kanako alang sa bisan unsang mga pangutana bahin sa kini nga artikulo.