我正在尝试设置一个Apache服务器(与Docker一起运行)以充当负载平衡反向代理,但是无论我如何尝试,我都会收到错误消息
[proxy_balancer:error] [pid 8:tid 140013616056064] [client 172.17.0.1:39376] AH01171: balancer://cluster: No workers in balancer
这是演示该问题的最低限度的工作示例:
Dockerfile:
FROM httpd:2.4
RUN for mod in \
slotmem_shm_module lbmethod_byrequests_module \
proxy_module proxy_http_module proxy_balancer_module; do \
sed -i "s/^#LoadModule \\($mod\\) /LoadModule \\1 /" conf/httpd.conf; \
done
RUN echo "Include conf/extra/test.conf" >> conf/httpd.conf
test.conf:
<Proxy "balance://cluster">
BalancerMember "http://www.google.com/"
BalancerMember "http://www.xkcd.com/"
</Proxy>
ProxyPass / balancer://cluster/
以docker run -it -p 80:80 -v $PWD/test.conf:/usr/local/apache2/conf/extra/test.conf proxy-test
身份运行
然后尝试检索http://localhost/
,并且错误出现在服务器stderr中。
我尝试将其放置在虚拟主机中,设置服务器名称,放置ProxyPassReverse,将ProxyPass放置在<Location />
内-没有任何帮助。
答案 0 :(得分:0)
我知道了-这是一个错字。 balance://cluster
应该是balancer://cluster
。