Rails应用程序无法在生产中使用子域

时间:2014-09-15 08:04:08

标签: ruby-on-rails apache ruby-on-rails-4

我有一个在Rails4和Ruby2上开发的应用程序,我在生产中遇到了这个应用程序的问题。 实际上我正在将每个用户重定向到他的子域,并且从那里用户可以管理他的帐户,但问题是App在主域上工作正常,如:www.domain.com 但是当用户被重定向到他的子域时,如:subdomain.domain.com,然后找不到服务器。 在本地,它在lvh.me所有的subimains和所有东西的帮助下正常工作。

我正在使用Apache2 + Passenger On服务器。

我的Apache配置中有什么必须改变吗?

<VirtualHost *>
    ServerName www.domain.com
    ServerAlias domain.com *.domain.com
    DocumentRoot /home/deploy/myapp/public
 <Directory /home/deploy/myapp/public>
        Allow from all
    </Directory>
</VirtualHost>

谢谢

1 个答案:

答案 0 :(得分:1)

中间件

我发现使用Apache处理子域的最佳方法是依赖Rails中间件。它没有我想要的那么高效,但同样有效。

你可以这样做:

#etc/apache2/apache2.conf
<VirtualHost *:80>
    ServerName www.domain.com
    ServerAlias domain.com
    DocumentRoot /home/deploy/myapp/public
 <Directory /home/deploy/myapp/public>
        Allow from all
    </Directory>
</VirtualHost>

如果您使用wildcard DNS setting作为子域名,则可以路由所有传入的&#34;子域名&#34;请求到您的域,允许Rails根据子域确定路由