apache - 如何通过AJP链接Apache和Tomcat容器?

标签 apache docker tomcat7

我创建了2个Docker镜像。一个是tomcat,另一个是apache。
我可以让它们单独运行,但是我试图通过AJP将apache代理给tomcat

我了解每个运行镜像都不知道2,但是有什么方法可以将AJP端口链接到apache吗?

目前,我得到以下信息:

[Thu Mar 17 15:49:43.373689 2016] [proxy:error] [pid 11:tid 140213099689728] (111)Connection refused: AH00957: AJP: attempt to connect to 127.0.0.1:8009 (localhost) failed [Thu Mar 17 15:49:43.373836 2016] [proxy:error] [pid 11:tid 140213099689728] AH00959: ap_proxy_connect_backend disabling worker for (localhost) for 60s [Thu Mar 17 15:49:43.373852 2016] [proxy_ajp:error] [pid 11:tid 140213099689728] [client 192.168.5.1:34864] AH00896: failed to make connection to backend: localhost 192.168.5.1 - - [17/Mar/2016:15:49:43 +0000] "GET / HTTP/1.1" 503 299

最佳答案

使用docker,您可以通过多种方法来执行此操作。最好的方法是设置一个docker bridge网络(假设您在同一主机上运行它们)。运行图像也称为容器。

为此,您必须做几件事:

  • 创建网桥网络

    “docker网络创建我的网络”
  • 将“--net = my-net”添加到两个容器的docker run命令中
  • 更新您的连接信息,以使用容器名称作为主机名,而不是使用“localhost”或127.0.0.1。 (当您在同一个docker网络上运行容器时,docker会做一些DNS魔术,使它们可以通过与容器名称匹配的主机名进行访问。

  • 编辑:

    如果您运行的是1.9之前的版本,则必须使用“链接”命令:https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/

    或者,您可以使用--net = host运行两个容器,这将使它们可以通过localhost相互访问。 (这样做的问题是您丢失了容器的封装,并且它基本上打开了该容器的所有端口到主机的端口。

    关于apache - 如何通过AJP链接Apache和Tomcat容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36065762/

    相关文章:

    jQuery 无法从本地主机检索数据

    apache - 使用 .htaccess 将特定 IP 地址重定向到我主页的特殊页面

    Docker 在上下文之外遵循符号链接(symbolic link)

    node.js - 无法弄清楚为什么 Docker 构建命令不起作用

    ubuntu - 如何正确使用Tomcat 7新别名?

    java - maven tomcat部署产生错误

    apache - 设置默认的Apache虚拟主机

    apache - 重写 URL 以匹配 Locationmatch

    docker - 容器以分离模式立即退出

    grails - Windows 2008 R2 tomcat 7中有多个 war 文件