Tek Apache Tomcat Sunucusunda Birden Fazla Web Uygulaması Nasıl Çalıştırılır
Apache Tomcat, çalıştırmak için Java Servlet, JSP ve Web Soketleri'ni dağıtmanıza olanak tanıyan açık kaynaklı bir web kapsayıcısıdır. Java koduyla desteklenen bir web sunucusu. Ayrıca platformlar arası bir sunucu uygulaması kapsayıcısı veya bir web kapsayıcısı olarak da tanımlanabilir.
Basitçe söylemek gerekirse, Tomcat, piyasadaki diğer web kapsayıcılarına göre birçok avantajı nedeniyle birçok endüstriyel paydaş arasında oldukça popülerdir. Java projenizden web arşivleri oluşturabilir ve bunu Java tarafından kodlanmış bir HTTP web sunucusunu barındırmak için bir Tomcat kapsayıcısı içinde dağıtabilirsiniz. Endüstriler aşağıdaki avantajlardan dolayı Apache Tomcat'i diğer konteynerlere tercih ediyor.
- Hafif.
- Yaygın olarak kullanılan.
- Diğer konteynerlerden çok daha hızlı.
- Yapılandırması kolaydır.
- Çok esnek.
Apache Tomcat genellikle mühendislere WAR yapıtlarını (Web ARchives) minimum yapılandırma değişikliğiyle dağıtmaları için alan sağlayan kullanıcı dostu bir üründür.
Bu gönderi zaten Tomcat kullanan ve Apache Tomcat motorunun nasıl başlatılıp kullanılacağını bilen bir kitleyi hedefliyor.
Apache Tomcat'te WAR'lar, konteynerin bunları varsayılan olarak dağıttığı webapps
dizinine yerleştirilmelidir. Basitçe, webapps dizini, Tomcat'in onu bir web sunucusu olarak dağıtması için Java kodunun ana taşıyıcısı görevi görür.
Tek bir Tomcat konteynerinden birden fazla web sunucusunu barındırmamız gereken bir senaryoda, bunu gerçekleştirmek için bu yazıyı bir rehber olarak kullanabilirsiniz. Bu makaleden size birden fazla web uygulamasını veya iki web sunucusunu tek bir Tomcat'te nasıl dağıtacağınızı göstereceğim.
Önkoşullar: Sunucuda Java yüklü olmalıdır. Tercihen 1.7.x veya üzeri. Bu eğitimde Tomcat 8.0.37 sürümünü kullandığım için Java 1.7'yi yükledim.
Java'yı, gösterildiği gibi yum veya apt gibi paket yöneticinizi kullanarak yükleyebilirsiniz:
yum install java [On CentOS based Systems]
apt-get install default-jre [On Debian based Systems]
Adım 1: Apache Tomcat Sunucusunu Kurun
1. Öncelikle kök hesabı kullanarak ayrı bir Tomcat
kullanıcısı oluşturun.
useradd tomcat
passwd tomcat
Şimdi Tomcat kullanıcısı olarak oturum açın ve en son Apache Tomcat paketini buradaki resmi siteden indirin: https://tomcat.apache.org/ veya alternatif olarak, doğrudan terminalden indirmek için aşağıdaki wget komutunu kullanabilirsiniz. .
Bu durumda, şimdiye kadar yayınlanan en son kararlı sürümlerden biri olan Apache Tomcat 8.5.5'i indiriyorum.
wget http://redrockdigimark.com/apachemirror/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz
2. Dosya indirildikten sonra tar komutunu kullanarak içeriği açın ve dizin yapısını gösterildiği gibi görüntüleyin:
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
Adım 2: Apache Tomcat Sunucusunu Yapılandırın
3. Aradığımız yapılandırma değişikliği conf dizininde bulunuyor ve Tomcat'in başlatılmasına yardımcı olan tüm yapılandırma dosyalarını yerleştirmek için kullanılıyor.
conf dizininin içeriği aşağıdakine benzer.
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 durumda benim için önemli olan server.xml
dosyasıdır. Bu yüzden diğer dosya veya dizinler hakkında derinlemesine bir açıklama yapmayacağım.
server.xml, Tomcat'e hangi bağlantı noktasının başlatılacağını, hangi dizin içeriğinin dağıtılacağını ve daha birçok ana ve temel yapılandırmayı söyleyen yapılandırma dosyasıdır.
Dosyayı açtıktan sonra temel olarak aşağıdaki gibi görünüyor.
vim server.xml
3. Adım: Web Uygulamalarını Apache Tomcat'te Dağıtma
5. Şimdi Apache Tomcat'te yeni bir web uygulaması konuşlandıracağız, önce hizmet etiketinin kapatıldığı yeri bulacağız ve ilk kapatıldıktan sonra aşağıdaki satırları ekleyeceğiz. servis etiketi.
<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ördüğünüz gibi, varsayılan Tomcat 8080 bağlantı noktasıyla başladığından, yeni eklenen girişte bağlayıcı bağlantı noktasını 7070 olarak değiştirdim. Bunu tamamen ayarladıktan sonra 8080 ve 7070 bağlantı noktaları altında çalışan iki web sunucusu olacaktır.
6. server.xml
dosyasında yapılan değişikliği kaydettikten sonra, apache ana dosyasında webapps2
adında apache'de bir dizin oluşturun.
cd /home/tomcat/apache-tomcat-8.5.5/
mkdir webapps2
Verdiğim server.xml
yeni girişini incelerseniz servis adının, uygulama tabanının ve motorun webapps2 olarak adlandırıldığını görmelisiniz. webapps2 adlı dizini oluşturmamın nedeni budur. İstediğiniz gibi bir tane oluşturabilirsiniz, ancak gerektiğinde girişte değişiklik yaptığınızdan emin olun.
7. İkinci web sunucusunun çalışır durumda olduğundan emin olmak için webapps dizininin içeriğini webapps2 dizinine kopyaladım.
cp -r webapps/* webapps2/
8. Şimdi heyecan verici kısım. Sunucuyu başlatacağız ve çalışıp çalışmadığını göreceğiz. bin
dizinine gidin ve startup.sh
betiğini çalıştırın. Günlükleri, logs dizininde bulunan catalina.out
dosyasında görüntüleyebilirsiniz.
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. Günlüklere bakarsanız hem webapps
hem de webapps2
'nin dağıtıldığını ve uygulamanın herhangi bir sorun olmadan başlatıldığını görebileceksiniz. .
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 senaryoda, kullandığım sunucunun IP'si 172.16.1.39'dur ve tek bir Tomcat konteynerinde iki web sunucusunu başlatabildiğimi görebilirsiniz.
http://172.16.1.39:8080 [1st Web App]
http://172.16.1.39:7070 [2nd Web App]
Umarım hepiniz bu makaleyi faydalı ve eğlenceli bulursunuz. TecMint ile iletişim halinde olun ve bu makaleyle ilgili sorularınız için bana ulaşmaktan çekinmeyin.