2013-05-01 14 views
9

Mam webapp na mój serwer tomcat takiego:Tomcat webapp na porcie 80

mydomain.com:8080/mywebapp

Potem podłączyć do mojego webapp, i działa poprawnie, ale to, co ja chcę to zobaczyć mojego webapp tak:

mydomain.com

Więc nie chcę tylko Tomcat na porcie 80, nie chcę, aby uzyskać dostęp do mojego webapp poprzez jego nazwę, chcę połączyć bezpośrednio z moją domenę URI.

Jak mogę to zrobić? Chcę, żeby to działało z Linuxem (Ubuntu 12.04 LTS) i serwerami Windows.

Odpowiedz

9

Istnieje kilka sposobów, aby to osiągnąć, ale najczęstszym sposobem rozwiązania jest to, aby uruchom Apache jako odwrotne proxy przed nim. Możesz znaleźć szczegółowe informacje here. To zadziała zarówno na Linuksie, jak i na Windowsie. W systemie Linux można również użyć opcji authbind, aby umożliwić Tomcat połączenie z portem 80. Po prostu zmiana portu na 80 w twoim server.xml nie będzie działać w systemie Linux, ponieważ wymagałoby to uruchomienia Tomcat jako root, co nie jest zbyt dobrym pomysł.

Ponadto, aby mieć swoją aplikację internetową pod numerem /, możesz wdrożyć swój plik wojenny jako ROOT.war.

+1

Wspaniale, myślę, że użyję authbind, wykonując następujące kroki: http://java.dzone.com/articles/running-tomcat-port-80-user – eLRuLL

1

Musisz ustawić serwer WWW Apache i skonfigurować go, aby korzystał z tomcat.

Musisz użyć mod_jk, aby skonfigurować serwer WWW Apache do komunikowania się z tomcat.

Użyj tej link, aby skonfigurować mod_jk.

6

Uruchamianie dowolnej aplikacji na porcie uprzywilejowanym (poniżej 1024) wymaga specjalnych uprawnień. Jeśli to zrobisz, upewnij się, że Twoja instancja to properly hardened.

Aby skonfigurować port Tomcat nasłuchuje trzeba zmodyfikować złącze HTTP w conf/server.xml (server reference documentation):

<Connector port="80" protocol="HTTP/1.1" 
      connectionTimeout="20000" 
      redirectPort="8443" /> 

Aby zmienić ścieżkę kontekście aplikacji, możesz zmienić nazwę pliku war . Aby wdrożyć go w katalogu głównym, zmień nazwę pliku wojny na ROOT.war. Można też dodać META-INF/context.xml, w którym można określić żądaną ścieżkę kontekstowe (context reference docs):

<?xml version="1.0" encoding="UTF-8"?> 
<Context path="/" /> 
+0

Próbowałem już zmienić port na 80, ale nie działa on na Linuksie, może potrzebuje dodatkowych kroków, ale nie chcę zagrożeń bezpieczeństwa. – eLRuLL

+0

To prawdopodobnie dlatego, że tomcat nie działa jako root; procesy inne niż root nie mogą wiązać się z portami uprzywilejowanymi. Innym świetnym sposobem radzenia sobie z tym jest implementacja mod_jk lub konfiguracja odwrotnego proxy przy użyciu apache. – ilikeorangutans

Powiązane problemy