Apache2 + Tomcat8

Ebből a bejegyzésből megtudhatod, hogy az Apache webkiszolgálót hogyan állítsd be, hogy a java webalkalmazásokra irányuló kéréseket továbbítsa a Tomcat részére, majd a visszakapott választ adja vissza a kliens felé.

Tomcat8 telepítése

A bejegyzésem alapfeltétele, egy – már korábban – feltelepített- és megfelelően konfigurált apache webkiszolgáló. Az általam használt szerver debian 8 jessie, de a leírtak éppúgy érvényesek ubuntu 14.04 LTS és ubuntu 16.04 LTS szerverekre is. Először frissítsük a rendszerünket.

sudo apt-get update
sudo apt-get upgrade

Majd telepítsük fel a szükséges csomagokat.

sudo apt-get install tomcat8 tomcat8-admin tomcat8-common tomcat8-docs tomcat8-examples tomcat8-user

Állítsuk le a szolgáltatást.

sudo /etc/init.d/tomcat8 stop

Nyissuk meg a server.xml állományt

sudo nano /etc/tomcat8/server.xml

Módosítsuk az AJP 1.3 Connector beállításait az alábbiak szerint.

<Connector port="8009" protocol="AJP/1.3" URIEncoding="UTF-8" redirectPort="8443" />

A konfiguráció szerint a Tomcat8 webszerver, a 8009 porton fog figyelni, majd a beérkező kérést feldolgozás után, a 8443 proton fogja megválaszolni. Érdemes beállítani az UTF-8 karakterkódolást, mivel az alapkonfiguráció, az ASCII kódtáblát támogatja.

Nyissuk meg szerkesztésre, a tomcat-user.xml állományt.

sudo nano /etc/tomcat8/tomcat-user.xml

Majd adjuk hozzá a tomcat-users szekcióhoz, az alábbi sorokat.

<role rolename="manager-gui" />
<role rolename="admin-gui" />
<user username="felhasználó név" password="jelszó" roles="manager-gui,admin-gui">

Természetesen a felhasználó név és jelszó szavakat, változtasd meg a saját igényednek megfelelően. Ezt követően indítsuk el a szolgáltatást.

sudo /etc/init.d/romcat8 start

JDK beállítása

A Tomcat8, Debian Jessie szerver esetén, alapértelmezésben a java-7-openjdk környezetet telepíti és használja. A Java SE Development Kit 8-as verziójának használatához kövesd az alábbi lépéseket.

Hozzuk létre a szükséges átmeneti könyvtárat.

sudo mkdir /usr/share/tomcat8

Lépjünk be a könyvtárba.

sudo cd /usr/share/tomcat8

Töltsük le az állományt.

sudo wget http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.tar.gz

Tömörítsük ki a csomagot

sudo tar -xvzf jdk-8u91-linux-x64.tar.gz -C /usr/share/tomcat8

Majd távolítsuk el a letöltött állományt.

rm jdk-8u91-linux-x64.tar.gz

Nincs más dolgunk, mint érvényesíteni az új fejlesztői környezetet

sudo update-alternatives --install /usr/bin/javac javac /usr/share/jdk1.8.0_91/bin/javac 1
sudo update-alternatives --install /usr/bin/java java /usr/share/jdk1.8.0_91/bin/java 1

Java és Javac könfiguráció módosításához a következő parancsokat használjuk

sudo update-alternatives --config javac
sudo update-alternatives --config java

Ellenőrízzük az aktuális verziókat

java -version
javac -version

Amennyiben nem vétettünk hibát, akkor már a 8-as JDK aktuális verzióját kell látnunk a kimeneten. Állítsuk be a Tomcat8 szervert is, hogy az új környezetet használja. Ehhez ismét állítsuk le a szolgáltatást

sudo /etc/init.d/romcat8 stop

Majd nyissuk meg a tomcat8 konfigurációs állományt.

sudo nano /etc/default/tomcat8

Keressük meg a JAVA_HOME= szekciót és módosítsuk az alábbiak szerint

JAVA_HOME=/usr/local/jdk1.8.0_91

Indítsuk el a szolgáltatást.

sudo /etc/init.d/romcat8 start

Így már a 7-es helyett, a 8-as JDK-t használja a Tomcat8 szerver.

Apache konfigurálása

A folytatásban megtanítjuk az Apache webkiszolgálót arra, hogy hogyan használja az AJP kapcsolatkezelőt. Ennek megfelelően, telepítsük fel a szükséges modult.

sudo apt-get install libapache2-mod-jk

Majd hozzuk létre a workers.properties állományt.

sudo nano /etc/apache2/workers.properties

Illesszük be az alábbi utasításokat, magyarázat nélkül.

worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

Mondjuk meg az Apache webservernek, hogy hol keresse a properties konfigurációs állományt.

sudo nano /etc/apache2/mods-available/jk.conf

Keressük meg a JkWorkersFile property beállítást, és módosítsuk.

JkWorkersFile property /etc/apache2/workers.properties

Majd mondjuk meg az Apache servernek, hogy mely URI-k esetén küldje a kérést a tomcat8 szervernek. Ehhez nyissuk meg a megfelelő konfigurációs állományt, természetesen a te állományod neve eltérhet a példámtól.

sudo nano /etc/apache2/sites-enabled/000-default

Használd az alábbi példát a saját konfigurációdhoz.

<VirtualHost *:80>
......................
......................
JkMount /pelda* worker1
</VirtualHost>

A „pelda” természetesen a Tomcat projekt neve, ezt át kell állítani a tiédre. Ezután nincs más dolgod, mint újraindítani az Apache szolgáltatást.

sudo service apache2 restart

Így már az Apache webszervered fel lett készítve arra, hogy a 80-as portra érkező Java Webalkalmazásokra irányuló kéréseket, automatikusan továbbítsa a Tomcat8 webszerver felé, majd a visszakapott választ automatikusan visszaküldi a kliens részére. Tulajdonképpen proxy-ként funkcionál és teljes mértékben transzparens szolgáltatást nyújt a felhasználó részére. Természetesen SSL alréteg használata esetén is hasonló módon kell elvégezni a konfigurációt.