1

我最初在 apache2 上使用 phusion 乘客将我的单个 Rails 应用程序部署到域上,比如bar.com. 现在我希望将我最近创建的一个附加应用程序推送到 bar 域上的一个子域,比如foo.bar.com. 我对如何在httpd.conf文件中设置虚拟主机以允许此设置感到有些困惑。我通过godaddy设置我的DNS,这样新的子域将指向与初始域相同的IP地址(它们都驻留在同一台服务器上)。

这是我的 httpd.conf 文件中的 VirtualHosts(注意两个文档根指向不同的应用程序):

NameVirtualHost *:80
<VirtualHost *:80>
  ServerName bar.com
  ServerAlias www.bar.com
  DocumentRoot /home/me/app1/public
  <Directory /home/me/app1/public>
    AllowOverride all
    Options -MultiViews
  </Directory>
</VirtualHost>  

<VirtualHost *:80>
  ServerName foo.bar.com
  ServerAlias foo.bar.com www.foo.bar.com
  DocumentRoot /home/me/app2/public
  <Directory /home/me/app2/public>
    AllowOverride all
    Options -MultiViews
  </Directory>
</VirtualHost>

使用此设置,我可以导航到,www.bar.com或者bar.com但似乎子域不起作用,导航foo.bar.com到此页面:

未找到

在此服务器上找不到请求的 URL /。

Apache/2.2.20 (Ubuntu) 服务器位于 foo.bar.com 端口 80

4

2 回答 2

1

这涉及几个步骤。首先,我将我的虚拟主机移到了我的 httpd.conf 文件之外,并在 sites-available 文件夹下创建了新文件,每个文件都以相应的域bar.comfoo.bar.com. 接下来,我必须通过运行 apache 命令将每个站点添加到启用站点sudo a2ensite。最后我不得不调用命令sudo service apache2 reload。重要的是每个命令都以管理员访问权限运行,否则它不起作用。

另外值得一提的是,像 Firefox 这样的浏览器喜欢缓存旧的网站域名数据,所以如果 url foo.bar.com 以前不起作用并且您解决了问题,它似乎仍然无法正常工作,直到您清除缓存。

于 2012-12-17T20:54:10.193 回答
0

还记得添加第二个虚拟主机后重启 apache 吗?

于 2012-12-15T02:25:28.560 回答