情况: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
问题:如何使这项工作并不总是显示默认服务器?
答案 0 :(得分:0)
我找到了原因,并且我很尴尬地说,但是要为其他服务器名称规定错误的域名和TLD。我们有几个doamin名称只有不同的TLD我混在一起。但由于我们的DNS设置了CNAME记录,他们确实解决了这个问题。
因此,apache找不到匹配的serverName,并显示默认值。
好消息(对于其他用户)上述配置有效,因此如果您需要在此unubtu和apache 2.4上使用反向代理和本地服务器组合,那么这就是前进的方法。
的问候, 克里斯托夫