Apache2代理错误的路由

时间:2018-06-15 08:49:47

标签: apache ubuntu-16.04 mod-proxy apache2.4

我使用apache2作为代理将不同URL的请求分发到ubuntu 16.04 LTS上的不同lxc容器

例如:

  • www.adomain.com代理为10.0.3.100
  • www.bdomain.com代理人为10.0.3.101

原则上这可行,但很好,但现在我看到一种奇怪的行为。

配置文件bbb.adomain.com:

<VirtualHost bbb.adomain.com:80>
    ServerName bbb.adomain.com
    ProxyRequests Off
    ProxyPreserveHost On
    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>


    ProxyPass / http://10.0.3.104/
    ProxyPassReverse / http://10.0.3.104/
    <Location />
            Order allow,deny
            Allow from all
    </Location>
</VirtualHost>

这很好,bbb.adomain.com的每个请求都代理到10.0.3.104

但是,对xxx.bdomain.com的请求也代理到10.0.3.104。但是xxx.bdomain.com未在任何apache .conf文件中配置为虚拟主机/服务器名称。

如何配置apache2,未配置为虚拟主机/服务器名称的任何URL未被代理?

如何调试apache2以找出此域xxx.bdomain.com为何被代理?

顺便说一下 - 第一个apache配置文件是000.conf:

<VirtualHost *:80>
ServerName catchall
<Location />
    Order allow,deny
    Deny from all
</Location>

2 个答案:

答案 0 :(得分:0)

您可以尝试以下基本配置:

<VirtualHost *:80>
ServerName bbb.adomain.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
        Order deny,allow
        Allow from all
</Proxy>

ProxyPass / http://10.0.3.104/
ProxyPassReverse / http://10.0.3.104/
<Location />
        Order allow,deny
        Allow from all
</Location>
</VirtualHost>

<VirtualHost *:80>
ServerName xxx.bdomain.com
DocumentRoot /var/www/example
</VirtualHost>

答案 1 :(得分:0)

使用以下步骤:

1)更新虚拟文件:-

.....& ";" & Chr(34) & format(tPricing,"Currency") & Chr(34))

2)启用必需的Apache模块

要启用这四个模块,请连续执行以下命令。

    <VirtualHost *:80>
    ServerAdmin admin@test.com
    ServerName mysite.com
    ServerAlias www.mysite.com
  ProxyRequests Off Order deny,allow Allow from all
 <Location />
        ProxyPass http:// mysite.com:8000/
        ProxyPassReverse http:// mysite.com:8000/
    </Location>

</VirtualHost>

3)要使这些更改生效,请重新启动Apache。

sudo a2enmod proxy

sudo a2enmod proxy_http

sudo a2enmod proxy_balancer

sudo a2enmod lbmethod_byrequests