Cara Menjalankan Beberapa Aplikasi Web dalam Satu Server Apache Tomcat


Apache Tomcat adalah wadah web sumber terbuka yang memungkinkan Anda menerapkan Java Servlets, JSP dan Web Sockets untuk menjalankan server web yang didukung oleh kode Java. Itu juga dapat diidentifikasi sebagai wadah servlet lintas platform atau wadah web.

Sederhananya, Tomcat sangat populer di antara banyak pemangku kepentingan industri karena banyak keunggulan dibandingkan wadah web lain di pasar. Anda dapat membuat arsip web dari proyek Java Anda dan menyebarkannya dalam wadah Tomcat untuk menghosting server web HTTP yang dikodekan oleh Java. Industri memilih Apache Tomcat dibandingkan container lain karena keunggulan berikut.

  1. Ringan.
  2. Banyak digunakan.
  3. Jauh lebih cepat dibandingkan kontainer lainnya.
  4. Mudah dikonfigurasi.
  5. Sangat fleksibel.

Biasanya, apache tomcat adalah produk ramah pengguna yang memberikan ruang bagi para insinyur untuk menerapkan artefak WAR (Arsip Web) mereka dengan perubahan konfigurasi minimal.

Posting ini menargetkan audiens yang sudah menggunakan Tomcat dan mengetahui cara memulai dan menggunakan mesin Apache Tomcat.

Di Apache Tomcat, WARs harus dimasukkan ke direktori webapps yang mana container akan menyebarkannya secara default. Sederhananya, direktori webapps bertindak sebagai wadah utama kode Java bagi kucing jantan untuk menyebarkannya sebagai server web.

Dalam skenario di mana kita perlu menghosting lebih dari satu server web dari satu container Tomcat, Anda dapat menggunakan postingan ini sebagai panduan untuk mencapainya. Saya akan menunjukkan cara menyebarkan beberapa aplikasi web atau dua server web dalam satu kucing jantan dari artikel ini.

Prasyarat: Java harus diinstal di server. Sebaiknya 1.7.x atau lebih tinggi. Dalam tutorial ini saya telah menginstal Java 1.7 karena saya menggunakan Tomcat versi 8.0.37.

Anda dapat menginstal Java menggunakan manajer paket seperti yum atau apt seperti yang ditunjukkan:

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

Langkah 1: Instal Server Apache Tomcat

1. Pertama-tama buat pengguna tomcat terpisah menggunakan akun root.

useradd tomcat
passwd tomcat

Sekarang login sebagai pengguna tomcat dan unduh bundel Apache Tomcat terbaru dari situs resminya di sini: https://tomcat.apache.org/ atau sebagai alternatif, Anda dapat menggunakan perintah wget berikut untuk mengunduh langsung di terminal .

Dalam hal ini, saya mengunduh Apache Tomcat, 8.5.5, yang merupakan salah satu versi stabil terbaru yang dirilis saat ini.

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

2. Setelah file diunduh, buka kompresi konten menggunakan perintah tar dan lihat struktur direktori seperti yang ditunjukkan:

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

Langkah 2: Konfigurasikan Server Apache Tomcat

3. Perubahan konfigurasi yang kita cari terletak di dalam direktori conf, digunakan untuk menempatkan semua file konfigurasi yang membantu kucing jantan untuk memulai.

Isi direktori conf terlihat seperti di bawah ini.

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. Dalam hal ini, yang penting bagi saya adalah file server.xml. Jadi saya tidak akan melakukan penjelasan mendalam mengenai file atau direktori lain.

server.xml adalah file konfigurasi yang memberi tahu tomcat port mana yang akan memulainya, konten direktori mana yang akan disebarkan, dan masih banyak lagi konfigurasi utama dan dasar.

Pada dasarnya terlihat seperti di bawah ini setelah Anda membuka file.

vim server.xml

Langkah 3: Menerapkan Aplikasi Web di Apache Tomcat

5. Sekarang kita akan menerapkan aplikasi web baru di Apache Tomcat, pertama-tama temukan tempat di mana tag layanan ditutup dan masukkan baris di bawah ini setelah yang pertama ditutup label layanan.

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

Seperti yang Anda lihat, saya telah mengubah port konektor menjadi 7070 di entri yang baru dimasukkan karena kucing jantan default dimulai dengan port 8080. Setelah pengaturan ini sepenuhnya akan ada dua server web yang berjalan pada port 8080 dan 7070.

6. Setelah menyimpan perubahan yang dilakukan pada server.xml, buatlah sebuah direktori di apache bernama webapps2 di dalam apache utama.

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

Jika Anda mengamati entri baru server.xml yang saya berikan, Anda akan melihat bahwa nama layanan, basis aplikasi, dan mesinnya diberi nama webapps2. Itulah alasan saya membuat direktori bernama webapps2. Anda dapat membuatnya sesuai keinginan, namun pastikan Anda membuat perubahan pada entri sesuai kebutuhan.

7. Untuk memastikan server web kedua aktif dan berjalan, saya menyalin konten direktori webapps ke direktori webapps2.

cp -r webapps/* webapps2/

8. Sekarang bagian yang menarik. Kami akan memulai server dan melihat apakah itu berfungsi. Masuk ke direktori bin dan jalankan skrip startup.sh. Anda dapat melihat log dalam file catalina.out yang berada di direktori 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. Jika Anda merujuk log, Anda akan dapat melihat bahwa webapps dan webapps2 diterapkan dan aplikasi dimulai tanpa masalah apa pun .

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. Dalam skenario ini, IP server yang saya gunakan adalah 172.16.1.39 dan Anda dapat melihat saya dapat memulai dua server web dalam satu wadah Tomcat.

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

Semoga artikel ini bermanfaat dan menyenangkan bagi Anda semua. Tetap berhubungan dengan TecMint dan jangan ragu untuk menghubungi saya jika ada pertanyaan mengenai artikel ini.