我正在尝试设置一个Docker Compose环境,其中包括一个Apache httpd服务器和一个“whoami”容器,我想使用Apache httpd服务器作为反向代理来将请求路由到“whoami”容器。
下面是我的docker-compose.yml文件:
version: '3'
services:
httpd:
image: httpd:latest
ports:
- "80:80"
volumes:
- ./httpd.conf:/usr/local/apache2/conf/httpd.conf:ro
whoami:
image: containous/whoami
ports:
- "8080:80"
下面是我的httpd.conf文件:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
ServerName 127.0.0.1
Listen *:80
<Proxy balancer://whoami>
BalancerMember http://whoami-replica-1:80
ProxySet lbmethod=byrequests
</Proxy>
ProxyPass / balancer://whoami
ProxyPassReverse / balancer://whoami
当我运行docker-compose up时,我可以访问http://localhost:8080的“whoami”容器,但是当我试图访问http://localhost的Apache httpd服务器时,我得到httpd退出,没有任何日志。
我做错了什么?如何在Docker Compose中配置Apache httpd作为“whoami”容器的反向代理?
1条答案
按热度按时间nxagd54h1#
httpd
正在退出,因为您的httpd.conf
无效。您正在 * 替换 * 默认的httpd.conf
,这意味着您需要处理强制配置,例如加载适当的安全模块(例如mod_unixd
)。更好的方法是从httpd镜像复制
httpd.conf
:然后修改它以满足您的需要。
我只能通过在
strace
的控制下本地运行Apache来确定问题:搜索该错误消息会导致this 2.2 to 2.4 upgrade documentation,其中提到了所需的
mod_unixd
模块。我无法想出任何
httpd
的命令行调用,使其以有用的方式发出此错误。