Apache-2.4
無法在 Docker 中使用 httpd ajp 代理訪問 Tomcat servlet
Docker、httpd 和 tomcat 對我來說是新的。
**我想做的:**通過httpd ajp反向代理訪問tomcat servlet。
我在同一個橋接網路下製作兩個容器,一個執行 httpd,另一個執行 tomcat。
**問題:**我無法通過httpd訪問tomcat。Httpd 返回 403 錯誤。如果我將它暴露給主機,我可以通過埠 8080 訪問它。我讀過很多文章,但不明白我做錯了什麼。根據我的理解,目前配置應該可以工作,但我肯定遺漏了一些東西。
請給我指點我做錯了什麼。
我的配置和 dockerfiles 請在此處查看 Git 儲存庫。我通過首先創建圖像來執行容器並按照以下方式執行
# Start web container docker run -dit --name httpd.container -p 80:80 --network extope-network httpd-101-image # Start AP container docker run -dit --name tomcat.container -p 8080:8080 --network extope-network --add-host=host.docker.internal:host-gateway tomcat-101-image
從您的 httpd 配置中的密鑰中刪除引號。
ProxyPass "/docs" "ajp://tomcat.container:8009/docs" secret=test_ajp_secret ProxyPass "/manager/" "ajp://tomcat.container:8009/manager/" secret=test_ajp_secret
之後它工作。
您的 server.xml 將流量重定向到埠 8443,但是,
- 不處理該埠(處理程序被註釋掉)
- 容器不接受該埠的流量。
在 httpd.conf 中,我看到“包含 conf/httpd_extope.conf”,但沒有 httpd_extope.conf。http_proxy.conf 嘗試聯繫 8009 埠的容器,上面兩條說明也有效。