Puncte:0

Nu se poate accesa servletul Tomcat folosind proxy httpd ajp în Docker

drapel cn

Docker, httpd și tomcat sunt noi pentru mine.

Ce vreau sa fac: Accesați servletul tomcat prin httpd ajp reverse proxy.

Fac două containere sub aceeași rețea de poduri, unul rulează httpd, altul tomcat.

Problemă: Nu pot accesa tomcat prin httpd. Httpd returnează eroarea 403. Pot accesa prin portul 8080 dacă îl expun gazdei. Am citit multe articole dar nu inteleg ce gresesc. Configurația actuală ar trebui să funcționeze conform înțelegerii mele, dar cu siguranță îmi lipsește ceva.

Captură de ecran a paginii de eroare

Vă rog să-mi dați indicații cu ce greșesc.

Configurațiile mele și fișierele docker Vă rugăm să vedeți Depozitul Git aici. Rulez containerul creând mai întâi imaginea și rulez urmând

# Porniți containerul web
docker run -dit --name httpd.container -p 80:80 --network extope-network httpd-101-image
# Porniți containerul AP
rulare docker -dit --name tomcat.container -p 8080:8080 --network extope-network --add-host=host.docker.internal:host-gateway tomcat-101-image
drapel in
Eroarea 403 vine de la tomcat, nu de la httpd. httpd-ul tău funcționează bine.
Mirza Prangon avatar
drapel cn
De ce ar returna tomcat 403 atunci când este accesat prin httpd? Deoarece accesarea prin portul 8080 funcționează bine.
Gerard H. Pille avatar
drapel in
@GeraldSchneider, s-ar putea să vă înșelați cu configurația curentă.
Puncte:0
drapel in

Eliminați ghilimelele din secret din configurația dvs. httpd.

ProxyPass „/docs” „ajp://tomcat.container:8009/docs” secret=test_ajp_secret
ProxyPass "/manager/" "ajp://tomcat.container:8009/manager/" secret=test_ajp_secret

Apoi funcționează.

Mirza Prangon avatar
drapel cn
Asta chiar mi-a rezolvat problema! Documentele pot fi mai clare în acest sens spunând să nu folosiți ghilimele duble.
Puncte:0
drapel in

Server.xml redirecționează traficul către portul 8443, dar,

  1. nu se ocupă de acel port (handler-ul este comentat)
  2. containerul nu acceptă trafic pentru acel port.

În httpd.conf văd „Include conf/httpd_extope.conf”, dar nu există httpd_extope.conf. http_proxy.conf încearcă să contacteze containerul de pe portul 8009, pentru care sunt valabile și cele două observații de mai sus.

Mirza Prangon avatar
drapel cn
Mulțumesc, am încercat să elimin linia portului de redirecționare de pe conectorul ajp, dar problema persistă. Apropo, în configurația conectorului pentru portul 8080, există și o linie de redirecționare către același port 8443, dar pot accesa prin portul 8080. De ce este asta?
Gerard H. Pille avatar
drapel in
Portul 8080 este gestionat corect. Vezi o altă problemă pe care o ai mai sus.
Mirza Prangon avatar
drapel cn
Îmi pare rău că am schimbat numele fișierelor înainte de a le partaja. Numele fișierelor sunt corecte în mediul meu. Voi repara asta
Gerard H. Pille avatar
drapel in
Asta nu schimbă problema cu portul 8009.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.