在apache2上配置虚拟主机

在apache2上配置虚拟主机,apache2,Apache2,我正在从Dreamhost切换到Rackspace云主机,因为前者处理rails应用程序的能力还有待提高。我已经安装了CentOS服务器,部署了rails应用程序,解决了域问题,一切都很好。现在我想设置它,所以如果我直接转到IP地址,我将获得普通apache目录而不是rails应用程序。我原以为虚拟主机可以处理这个问题,但现在它们都转到rails页面或apache页面,视情况而定 <VirtualHost *:80> ServerName 123.456.789.101 Do

我正在从Dreamhost切换到Rackspace云主机,因为前者处理rails应用程序的能力还有待提高。我已经安装了CentOS服务器,部署了rails应用程序,解决了域问题,一切都很好。现在我想设置它,所以如果我直接转到IP地址,我将获得普通apache目录而不是rails应用程序。我原以为虚拟主机可以处理这个问题,但现在它们都转到rails页面或apache页面,视情况而定

<VirtualHost *:80>
  ServerName 123.456.789.101
  DocumentRoot /var/www/html
</VirtualHost>

<VirtualHost *:80>
  ServerName mywebsite.com
  ServerAlias www.mywebsite.com
  DocumentRoot /rails/myapp/current/public
  <Directory /rails/myapp/current/public>
    AllowOverride all
    Options -MultiViews
  </Directory>
</VirtualHost>

服务器名123.456.789.101
DocumentRoot/var/www/html
服务器名mywebsite.com
ServerAlias www.mywebsite.com
DocumentRoot/rails/myapp/current/public
允许超越所有
选项-多视图

我不太确定如何继续,或者这是不是一开始就不可能。想法?

Apache将第一个virtualhost作为所提供IP的主主机(或者在*的情况下为所有IP)。因此,您应该能够只设置主虚拟主机记录,确保它是加载的第一个vhost记录,并且无论何时遇到未绑定的IP或未绑定的地址,它都将加载该虚拟主机。然后指定第二个虚拟主机,其中包含要指向rails应用程序的特定域/子域


请注意,如果您将虚拟主机记录拆分为多个文件(即可用站点/启用站点的文件夹)。Apache按字母顺序加载它们,通常在基于debian的系统上,您会看到默认或类似的文件。此虚拟主机在开始时使用数字,以确保其始终是第一个加载的虚拟主机,并承担主要vhost的角色

是否使用基于名称的虚拟主机?让apache.mywebsite.com指向apache页面,或者类似的东西。并将www指向您的rails应用程序。