我使用apache2作为代理将不同URL的请求分发到ubuntu 16.04 LTS上的不同lxc容器
例如:
原则上这可行,但很好,但现在我看到一种奇怪的行为。
配置文件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>
答案 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