0

我正在尝试设置一个 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

测试.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 />- 没有任何帮助。

4

1 回答 1

0

我想通了 - 这是一个错字。balance://cluster应该是balancer://cluster

于 2018-06-19T14:40:49.560 回答