Apache反向代理配置始终返回相同的站点

时间:2015-04-01 08:21:05

标签: apache ubuntu-14.04 reverse-proxy

情况:ubuntu服务器14.04,在专用虚拟机上安装了apache和bugzilla。 一切正常,在bugzilla.myexternal.com,bugzilla.myinternal.xyz和局域网IP地址

现在,我想通过基于主机名的转发,使用相同的apache实例在同一外部IP上提供其他内部服务器。为other1.myexternal.com,other2.myexternal.com等正确添加和解析DNS记录

(内部DNS已涵盖/解析otherX的内部名称为本地IP地址以供内部使用)

在阅读了这里的atricles和apache之后,我精简了我能够提取bugzila site-conf并按预期添加其他site-conf。然而,有许多矛盾的文章有不同的解决方案,最终我无法使其发挥作用。无论主持人是谁,我总是最终得到最初的bugzila网站。当我a2dissite bugzilla,然后我总是被转发到第一个反向代理站点(显示代理实际上工作)

这是site-conf的样子。

的bugzilla:

<VirtualHost *:80>
   ServerName bugzilla.myexternal.com
   ServerAlias 192.168.aaa.bbb

   DocumentRoot /var/www/html
   <Directory /var/www/html>
      AddHandler cgi-script .cgi
      Options +ExecCGI
      DirectoryIndex index.cgi index.html
      AllowOverride Limit FileInfo Indexes Options
   </Directory>

</VirtualHost>

other1 :(和其他X类似,都有静态内部ip)

<VirtualHost *:80>
   ProxyPreserveHost On
   ServerName other1.myexternal.com

#   ProxyRequests off ->also tried without commenting out
   ProxyPass / http://192.168.aaa.ccc/
   ProxyPassReverse / http://192.168.aaa.ccc/
</VirtualHost>

apache重新加载没有错误/警告。

查看&apache2ctl -S&#39;我看到它们已正确加载。但在所有情况下(禁用某些虚拟主机时),显示的网站始终是由&#39;提及的默认服务器。 apache2ctl -S&#39;:

VirtualHost configuration:
*:80                   is a NameVirtualHost
     default server bugzilla.myexternal.com (/etc/apache2/sites-enabled/bugzilla2.conf:1)
     port 80 namevhost bugzilla.myexternal.com (/etc/apache2/sites-enabled/bugzilla2.conf:1)
             alias 192.168.aaa.bbb
     port 80 namevhost other1.myexternal.com (/etc/apache2/sites-    enabled/comfoway.conf:2)
     port 80 namevhost other2.myexternal.com (/etc/apache2/sites-    enabled/spcway.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex proxy: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex watchdog-callback: using_defaults
Mutex proxy-balancer-shm: using_defaults
Mutex rewrite-map: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
Define: MODPERL2
Define: ENABLE_USR_LIB_CGI_BIN
User: name="www-data" id=33
Group: name="www-data" id=33

问题:如何使这项工作并不总是显示默认服务器?

1 个答案:

答案 0 :(得分:0)

我找到了原因,并且我很尴尬地说,但是要为其他服务器名称规定错误的域名和TLD。我们有几个doamin名称只有不同的TLD我混在一起。但由于我们的DNS设置了CNAME记录,他们确实解决了这个问题。

因此,apache找不到匹配的serverName,并显示默认值。

好消息(对于其他用户)上述配置有效,因此如果您需要在此unubtu和apache 2.4上使用反向代理和本地服务器组合,那么这就是前进的方法。

的问候, 克里斯托夫