Obecnie serwer w pracy jest słabszy, a sposób, w jaki się ustawiono, nie jest również idealny. Z tego powodu staram się znaleźć nowy sposób robić rzeczy, które mieli nadzieję, że pomoże zarówno zarówno wydajność, jak i wdrożenie.

Podejście, na które zdecydowałem się na wystąpienia TomCat dla naszych webappów (obecnie istnieją dwa, więc będzie to instancja na webApp) i użyj apache jako "przodu". Nie doświadczyłem w tym, więc jest to normalne, że mam tutaj problemy, ale do tej pory uda mi się udać.

Spodziewam się przekierowania z strony indeksu Mysite.com do mysite.com/service1 lub mysite.com/service2. Serwis1 został skonfigurowany na serwerze testowym Port 8080 i Service2 w 8081. Zainstalowałem wczoraj Apache2 i Mod_jk i skonfigurowałem Apache z zawartością Mysite.com. Dzisiaj rozpocząłem konfiguracje, które trafiły do następującego:

Pracownicy.Properties.

worker.list=s1

worker.s1.type=ajp13
worker.s1.port=8009

#host is localhost by default according to the documentation

Jk.load.

LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so

JkWorkersFile /etc/apache2/workers.properties

JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel debug
JkMount /service1/* s1

Złącze serwera Service1's Server.xml (reszta jest domyślna)

<Connector protocol="AJP/1.3" port="8009" redirectPort="8443" />

Miałem więcej, ale ze względu na błędy, wziąłem krok do tyłu i próbowałem na razie tylko jeden Tomcat. Dodam drugi tomcat i ładownika.

ok, więc co się dzieje?

Mogę uzyskać dostęp do serwera i strony indeksu naszego systemu bez problemu. Problem polega na tym, kiedy próbuję przekierować do serwisu1. Po prostu ładuje się bez odpowiedzi, ale jeśli spróbuję uzyskać dostęp do serwisu1 bezpośrednio przez port 8080, działa prawidłowo (zmęczony komentowanie tego złącza. Nie ma szczęścia).

Patrząc na status serwera, widzę żądanie utknęło w W / wysyłając odpowiedź, aw mod_jk.log widzę, że pracownik odpowiednio pasuje do żądania. Więc gdy moje konfiguracje wydają się mieć rację, jest coś między dzieje się. Naprawdę nie wiem, czy to coś z apache, tomcat lub mod_jk. Próbowałem również śledzić kilka przewodników, jak to zrobić, ale wszystkie z nich dostali mnie do 404s. Rozglądanie się tutaj i Serverfault nie szopał zbyt dużo światła niestety, więc ja teraz pytam.

Brakowam czegoś? Czy powinienem po prostu użyć innego podejścia? Jestem w tym bardzo nowy i jestem teraz utrata. Konfiguracja i dzienniki pokazują, że nic nie jest tak naprawdę nie tak (na pierwszy rzut oka, przynajmniej ...) Więc jestem całkowicie pewien, czy moja sprawa Scneario jest nawet wystarczająca z mod_jk ... szczerze, aby uruchomić go z powrotem i spróbować z proxy jest Bardzo kuszące w tym momencie, ale jeśli jestem, wolałbym wiedzieć, gdzie się mylę.

Dodatkowe informacje: Bieganie na Ubuntu Server 18.04, najnowszy apache2 i mod_jk dostępny z AOT (od 14 kwietnia), Java 1.8 i TomCat 8.5.64.

1
Jetto Martínez 16 kwiecień 2021, 00:36

1 odpowiedź

Najlepsza odpowiedź

W zeszłym roku nastąpiła zmiana w TomCat (z wersji 8.5.51 i wersja 9.0.31), który wprowadził atrybut secretRequired do złącza AJP z domyślnym domyślnym {x1}} (por. Dokumentacja ). Dlatego możesz:

  • Dodaj współdzieloną sekret między złączem AJP a mod_jk}

  • lub dodaj secretRequired="false" do złącza AJP:

    <Connector protocol="AJP/1.3" port="8009" secretRequired="false" redirectPort="8443" />
    

Uwaga: AJP jest bardzo starym protokołem i rzadko używanym. Ponieważ instalacja jest dość nowa, możesz rozważyć przy użyciu bezpośrednio http (por. Ta rozmowa ).

1
Piotr P. Karwasz 16 kwiecień 2021, 05:18