2014-03-04 114 views
2

我有一個域名,讓我們說example.com,我想創建一個像page.example.com一個子域。路由到軌子域

我在我的軌道添加一個路由的routes.rb文件:

class MySubDomain 
    def self.matches?(request) 
    request.subdomain.present? && request.subdomain == ("page" || "page.example.com") 
    end 
end 

MyApp::Application.routes.draw do 
    constraints(MySubDomain) do 
    get '/' => 'static_pages#some_page' 
    end 

    root to: 'something#else' 

當我瀏覽到page.example.com發展(POW使用),那麼它的土地適當的控制器上。對於生產我創建像一個DNS條目:

A記錄page.example.com指向的VPS的IP。

當我打page.example.com在瀏覽器中,然後它只是把我送到example.com

當我蜷縮page.example.com那麼答覆是我期望的。

我的nginx的配置如下:

upstream example.com {server unix:/tmp/benchmark_app.sock fail_timeout=0;} 

server_names_hash_bucket_size 64; 

server { 
     listen 80; 
     listen [::]:80 default_server ipv6only=on; 
     root /home/deploy/example/public; 
     server_name example.com page.example.com; 

     location/{ 
      proxy_pass http://unix:/home/deploy/example/shared/sockets/puma.sock; 
      proxy_set_header Host $host; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     } 

     error_page 404 /404; 
     error_page 500 /500; 
} 

編輯:我已經改變了路線,添加捲曲響應和加入nginx的配置。

回答

0

我會通過修改HOSTFILE(加入「127.0.0.1 test.example.com」),然後在本地測試這些變化打的來檢查它是否是一個軌道問題或Web服務器問題。

GL

+0

更容易使用lvm.me域名。 lvh.me和所有子域指向127.0.0.1。無需無休止地修改您的主機文件。 – sfb

+0

我使用pow。這意味着我可以訪問example.dev和page.example.dev。如前所述,它適用於pow。 – railsuser400