Docker tomcat позади apache httpd порт 8009 не подключен - PullRequest
0 голосов
/ 06 марта 2020

Возможно, мне чего-то не хватает:

Запрос попадает в контейнер apache httpd-> находит работника ajp -> находит рабочий хост в docker network-> пытается отправить запрос tomcat-> сбой говорит о том, что контейнер tomcat не прослушивает порт 8009

Docker -compose выглядит как

version: '2'
  services:
   httpd:

   build:
     context: .
     dockerfile: httpd/Dockerfile
   container_name: "http-proxy"
   volumes:
    - ./httpd/conf/000-default.conf:/etc/apache2/sites-available/000-default.conf
    - ./httpd/conf/workers.properties:/etc/apache2/workers.properties
    - ./httpd/conf/jk.conf:/etc/apache2/mods-available/jk.conf
    - ./httpd/conf/apache2.conf:/etc/apache2/apache2.conf
   ports:
    - 80:80
tomcat:
  image: tomcat:8.5.51
  volumes:
    - ./tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml
  container_name: "app"
  expose:
   - 8009

worker.properties выглядит как

worker.app_worker.type=ajp13
worker.app_worker.host=app
worker.app_worker.port=8009

jk.conf имеет

JkMount /app|/* app_worker

, а соединитель доступен на сервере Tomcat. xml

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

ошибка

 Failed opening socket to (192.168.164.4:8009) (errno=111)
 [error] ajp_send_request::jk_ajp_common.c (1728): 
 (app_worker) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port

Я могу подтвердить Tomcat работает.

...