Niedawno zainstalowałem tomcat za pomocą skryptu instalacyjnego ze społeczności Apache Solr Typo3 i spędziłem ostatnie 3 dni próbując dowiedzieć się, dlaczego to nie zadziała, dopóki przypadkiem nie zauważyłem, że kiedy zapytałem o proces nasłuchiwania na porcie za pomocą „lsof -i ”, był związany z protokołem ipv6. Wszędzie googlowałem i większość twierdzi, że ustawienie adresu na 0.0.0.0 w złączu tomcat rozwiązuje ten problem, inni twierdzą, że ustawienie JAVA_OPTS = "- Djava.net.preferIPv4Stack = true" ; Wypróbowałem ten pierwszy, który nie działa, ale ten drugi nie jestem pewien, gdzie go umieścić. Jedno rozwiązanie, które gdzieś przeczytałem, sugeruje umieszczenie go w setenv.shale nie mogę znaleźć tego pliku w mojej instalacji tomcat. Byłbym wdzięczny za wszelką pomoc w tej sprawie. Wersja tomcat to 6.x, a system operacyjny to Ubuntu 11.10. Dzięki
32
Odpowiedzi:
Wiele osób sugerowało aktualizację
catalina.sh
skryptu uruchamiania. Tak, to rozwiązanie działałoby, alecatalina.sh
skrypt nie ma być dostosowywany / aktualizowany. Wszystkie zmiany powinny zamiast tego przejść do skryptu dostosowywania, tjsetenv.sh
.UWAGA:
TOMCAT_HOME/bin/setenv.sh
domyślnie nie istnieje, musisz go utworzyć. Sprawdźcatalina.sh
skrypt, a zobaczysz, czy skrypt startowy sprawdza, czysetenv.sh
istnieje, i wykonuje, jeśli tak jest.Sugeruję więc, aby utworzyć nowy
TOMCAT_HOME/bin/setenv.sh
skrypt w jednym wierszu:źródło
Ok, w końcu to rozwiązałem. Polecono mi spróbować tego i rozwiązania Henka. Żaden z nich nie działał na zdalnym serwerze wirtualnym. Zgaduję, że ponieważ jestem na wspólnej przestrzeni jądra, więc dostawca temu zapobiega. W każdym razie dodałem:
JAVA_OPTS= $JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses
do skryptu startowego catalina.sh i wydawało się, że to rozwiązało problem wiązania tomcat z ipv6.źródło
Prawidłowa składnia do modyfikowania pliku catalina.sh to:
źródło
Jeśli użyłeś tego instalatora: „ Apache Solr dla TYPO3 ”, możesz zmienić adres w pliku
server.xml
. Domyślnie wskazuje localhost, więc poszukaj 127.0.0.1 i zmień go na pożądany adres IPv4. Nie zapomnij zrestartować Tomcat6, aby zmiany odniosły skutek.AKTUALIZACJA, 20120521
Zobacz mój komentarz poniżej, jak wyłączyć IPv6 na Ubuntu 11.10.
Z powodzeniem przetestowałem to na Virtualbox-VM na moim komputerze Mac. Adres portu 8080 złącza został zmieniony z 127.0.0.1 na 0.0.0.0 in
server.xml
.Następnie wyłączenie IPv6 powoduje, że „tcp6” odchodzi, więc jest on powiązany z adresem tylko dla IPv4.
Przed / z włączonym IPv6:
Po wyłączeniu / IPv6:
źródło
Chociaż prawdopodobnie nie jest to preferowana metoda, zauważyłem, że wyłączenie IPv6 na poziomie jądra przekona Tomcat do otwarcia powiązania IPv4.
źródło
Wraz z inną odpowiedzią przy użyciu setenv.sh i CATALINA_OPTS ...
Używając Tomcat SSL z APR, jedynym sposobem, w jaki mogłem zmusić Tomcat do powiązania z ipv4, było dodanie tego do konfiguracji konektora:
server.xml wygląda następująco:
źródło
Debian 8 przejdź do korzystania ze swojego ulubionego edytora na / etc / default / grub ; poszukaj sekcji GRUB_CMDLINE_LINUX_DEFAULT = „cichy” **, a następnie dodaj ipv6.disable = 1 , jak pokazano poniżej
GRUB_CMDLINE_LINUX_DEFAULT = "ipv6.disable = 1 cicha"
Zapisz i wyjdź. W tym samym katalogu użyj swojego ulubionego edytora na / etc / default / tomcat8, a następnie poszukaj sekcji z JAVA_OPTS =, która zostanie skomentowana, dodaj poniższy wiersz. JAVA_OPTS = "$ JAVA_OPTS -Djava.net.preferIPv4Stack = true -Djava.net.preferIPv4Addresses = true"
Zapisz i wyjdź
W wierszu polecenia wpisz update-grub , jeśli używasz sudo z sudo, uruchom ponownie usługę tomcat8, ponownie uruchom tomcat8
Powinieneś być teraz na IPv4.
W przyszłych postach proszę podać pełne ścieżki i nazwy plików. Dziękuję Ci
źródło