使用Apache为单个域名和单个IP地址服务两个网站
我想从同一个Ubuntu服务器使用Apache托管两个网站。我有一个IP地址,我只有一个域(它解析为IP地址)。所以我想请求这个域名给一个网站,并且请求这个IP地址给另一个。使用Apache为单个域名和单个IP地址服务两个网站
我将/ etc/apache2/sites-enabled中的符号链接指向两个文件,指向我的两个站点的配置。
其中包含:
<VirtualHost 1.2.3.4:80>
ServerName 1.2.3.4
stuff
</VirtualHost>
另一个则包含
<VirtualHost domain.net:80>
ServerName domain.net
stuff
</VirtualHost>
然而,当我启动Apache时,得到以下信息:
[warn] VirtualHost 1.2.3.4:80 overlaps with VirtualHost domain.net:80, the first has precedence, perhaps you need a NameVirtualHost directive
,当我点我的浏览器在domain.net或1.2.3.4我得到我想要与ip地址关联的网站。
如果我删除了任何符号链接,那么将浏览器指向域名或IP地址将提供唯一启用的网站。 (正如你所希望的那样)。
据我所知,启用网站的两个配置文件都被立即加载,而包含ip地址的配置文件胜过包含域名的配置文件。该警告建议查看NameVirtualHost指令,但是我可以在网上找到的所有帮助都指的是您有两个域名指向同一个IP地址的情况。
一如既往,帮助或建议将不胜感激。
(对于它的价值,该网站都是Rails应用程序,和我使用的客运部署,但我不认为这是重要的在这里。)
这是我要做的事:
NameVirtualHost 1.2.3.4:80
<VirtualHost 1.2.3.4:80>
ServerName localhost
DocumentRoot /var/www/default
</VirtualHost>
<VirtualHost 1.2.3.4:80>
ServerName mydomain.net
DocumentRoot /var/www/mydomain
</VirtualHost>
Apache为每个请求寻找合适的虚拟主机。如果它找不到与ServerName
或ServerAliases
中的任何一个相匹配的那个,则它将采用第一个。在第一个VirtualHost
中使用ServerName
的用法并不重要,因为如果其他VirtualHosts
都不匹配,它将始终使用。
请确保您有指令
NameVirtualHost *:80
在/etc/apache2/ports.conf
有这个问题,这里是我做过什么:
编辑的httpd。CONF
sudo vi /etc/apache2/httpd.conf
添加此行
NameVirtualHost *:80
注意:您可以替换*:80与your_ip_address:80
现在创建域名配置文件。我用的是domain_name.com
sudo vi /etc/apache2/sites-available/domain.com
这个添加到文件
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.domain.com
ServerAlias domain.com
DocumentRoot /var/www/domain.com/public_html/
ErrorLog /var/www/domain.com/logs/error.log
CustomLog /var/www/domain.com/logs/access.log combined
</VirtualHost>
确保在domain.com配置的目录存在
/var/www/domain.com/public_html/
/var/www/domain.com/logs
注意:使用像mkdir命令这根据需要
sudo mkdir /var/www/domain.com/public_html/
sudo mkdir /var/www/domain.com/logs
现在,我们需要使这样的
sudo a2ensite domain.com
新的配置文件,您将看到一个通知,重新启动Apache,使用此命令
/etc/init.d/apache2 restart
现在,我们需要一个测试文件,查看
sudo vi /var/www/domain.com/public_html/index.html
添加一些文字
Hello domain.com
打开Web浏览器并转到您的新域
http://domain.com
仅供参考,类似这样的问题上serverfault.com – 2010-02-09 20:17:25