努力让两个虚拟服务器运行在同一个 IP 上。问题是它总是将所有请求转发到 nagios 虚拟主机。即使我输入 sugarcrm.domain.co.uk,它仍然会将其转发到 nagios。
有什么想法吗..... 可能是我的请求没有附带完整的域名?或者我的配置有误。
这是服务器上运行的仅有的两个网站。
我在 /etc/apache2/sites-avalable/ 中有以下文件:
- 操作视图
- sugarcrm
Opsview 配置
# This is the apache configuration when running opsview-web over a proxy mechan$
<VirtualHost *>
ServerName nagios.domain.co.uk
#Any files in here will be served by Apache
DocumentRoot /usr/local/nagios/share
<Directory /usr/local/nagios/share>
Order allow,deny
Allow from all
</Directory>
# This alias required so that Apache serves NMIS' static files
Alias /static/nmis/ "/usr/local/nagios/nmis/htdocs/"
<Directory /usr/local/nagios/nmis/htdocs>
Order allow,deny
Allow from all
</Directory>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
# Don't proxy error pages as these are served statically
ProxyPass /error_pages !
ProxyPass /javascript !
ProxyPass /stylesheets !
ProxyPass /help !
ProxyPass /images !
ProxyPass /xml !
ProxyPass /favicon.ico !
ProxyPass /graphs !
ProxyPass /static !
ProxyPass /media !
SugarCRM 配置
<VirtualHost *>
ServerName sugarcrm.domain.co.uk
DirectoryIndex index.html index.htm index.php
DocumentRoot /var/www/sugarcrm
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
答案1
首先,我会尝试简化您的配置并进行测试。如下所示:
<VirtualHost *:80>
ServerName nagios.domain.co.uk
DocumentRoot /usr/local/nagios/share
</VirtualHost>
<VirtualHost *:80>
ServerName sugarcrm.domain.co.uk
DocumentRoot /var/www/sugarcrm
</VirtualHost>
<NameVirtualHost *:80>
如果您运行的是 2.2,我假设您的 Apache 配置中已经有了。
如果可行,那么您可以慢慢扩展它并使其变得更加复杂。顺便说一句,我注意到<Directory>
您的 sugarcrm 域的指令指向/
而不是/var/www/sugarcrm
。
当然,您可以使用浏览器进行测试,但另一种更低级的测试方法如下:
- 在有 telnet 客户端的机器上输入
telnet server_IP_addr 80
- 当 Web 服务器响应时(通常类似
Escape character is '^]'.
)
输入:
GET / HTTP/1.1
HOST: nagios.domain.co.uk
hit Enter again, so twice after the words in the previous line
您可以对 sugarcrm 域名重复该测试。
好的参考页面:http://httpd.apache.org/docs/2.4/vhosts/name-based.html
祝你好运!