Cześć!
W tym poście opiszę jak wygląda konfiguracja apache2 reverse proxy dla Tomcata w systemie Debian (Jessie)
Zaczynając od początku:
Dlaczego potrzebujesz Apache2 skoro Tomcat jest serwerem aplikacyjnym?
Problemem jest to, że próbując uruchomić Tomcata na porcie 80** (w systemie linuksowym) otrzymasz wyjątek
java.net.SocketException: Permission denied
Wynika to z tego, że na systemach Linux porty poniżej 1024 mogą być otwierane wyłącznie przez root’a. Jednak serwer Apache2 jest uprzywilejowany i może bez problemu działać na porcie 80. Można to wykorzystać i skonfigurować Apache2 jako reverse proxy, które będzie forwardować zapytania z portu 80 na port Tomcata i spowrotem.
W tym celu należy zainstalować apache2
apt-get install apache2
Następnie uruchomić odpowiednie mody niezbędne do przekierowywania żądań.
a2enmod proxy
a2enmod proxy_http
Kolejnym krokiem jest edycja pliku konfiguracyjnego apache2 domyślnie znajdującego się w folderze /etc/apache2/sites-enabled z domyślną nazwą „000-default.conf”
Proponuję skorzystać z edytora konsolowego nano
nano /etc/apache2/sites-enabled/000-default.conf
Następnie odnaleźć w pliku sekcję
<VirtualHost *:80>
// powyżej ustawienia domeny
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
Ostatnim krokiem jest zrestartowanie apache2.
service apache2 restart
W ten sposób aplikacja uruchomiana na tomcacie powinna być dostępna na adresie http://adres_serwera.adres.
Mój post dostępny jest również na stackoverflow
** Port 80 jest standardowym portem protokołu HTTP tj. gdy w przeglądarce wpisujesz adres np. http://www.naos-software.pl tak naprawdę odwołujesz się do http://www.naos-software.pl:80/ – problematycznym byłoby utrzymywanie aplikacji gdzie użytkownik musi dopisywać sobie port aplikacji – w tym wypadku domyślny port dla http Tomcata to 8080, więc adres wyglądałby http://www.naos-software.pl:8080/