子域路由到主域

时间:2013-07-16 00:09:19

标签: ruby localhost passenger webrick padrino

我在我的Padrino configuration中使用子域。我在AWS Route 53中创建了多个A记录,以便路由到诸如api.myapp.com和amp; 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”。问题是当我尝试在我的localhost上访问这些子域时。它保持路由到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 :: Web)的服务。为什么会这样?

1 个答案:

答案 0 :(得分: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上运行我的本地服务器,所有工作正常。