2013-07-16 174 views
0

我在我的Padrino configuration内使用子域。我在AWS Route 53中创建了多个A记录,以便路由到诸如api.myapp.com & admin.myapp.com,myapp.com,www.myapp.com。这是按预期工作的。下面是我的配置是什么样子:子域路由到主域

Padrino.mount('MyApp::App', :app_file => Padrino.root('app/app.rb')).host('api.myapp.com') 
Padrino.mount('MyApp::Manager', :app_file => Padrino.root('manager/app.rb')).host('manager.myapp.com') 
Padrino.mount("MyApp::Admin", :app_file => File.expand_path('../../admin/app.rb', __FILE__)).host("admin.myapp.com") 
Padrino.mount('MyApp::Web', :app_file => Padrino.root('web/app.rb')).to('/') 

我已经取代了真实姓名“的myapp”对于这个问题的目的。问题是当我尝试访问我的本地主机上的这些子域。它保持路由到web/app.rb(仅在'/')。我想改变我的/etc/hosts像这样:

127.0.0.1  localhost 
127.0.0.1  manager.myapp.com 
127.0.0.1  api.myapp.com 
127.0.0.1  admin.myapp.com 

然后,当我尝试打manager.myapp.com:3000,其路由到什么是被服务的根域(MyApp的::网络)。这是为什么发生?

回答

0

我在config/apps.rb中做了一些配置更改,以便在本地部署或运行​​时使用特定的子域。然后,我更新了我的/etc/hosts具有以下值:

127.0.0.1  manager.localhost manager 
127.0.0.1  api.localhost api 
127.0.0.1  admin.localhost admin 

这并不真正意味着什么,但。问题是我在3000端口上运行,这些值没有考虑到。由于我通过与/etc/hosts战斗(并且会喜欢一些指导),我只是在端口80上运行我的本地服务器,并且一切正常。

+0

使用该配置访问'http://admin.myapp.com:3000',它应该可以工作。 –