2014-09-27 38 views
1

我的網站有一些頁面,比如example.com/about停止軌子域從觸發* *一切

我也爲api.example.com創造了我的應用程序的API。

# API               
namespace :api, path: '/', constraints: { subdomain: 'api' } do 
    scope format: true, constraints: { format: 'json' } do   
    get 'posts/latest', to: 'posts#latest'      
    get 'posts/:id', to: 'posts#show'       
    end               
end 

# Pages 
get 'about' to: 'pages#about' 
get 'contact', to: 'pages#contact' 

的問題是,現在我的​​頁面正在我的API子域。

api.example.com/about應該肯定是不行的樣子,並應觸發404

我真正想要做的是包裹在constraints: { subdomain: nil }我的路線文件的整個其餘部分,但我想知道「Rails的道路」做這個。

謝謝!

+0

只是出於好奇,是否有一個原因,你要去一個子域的路線,而不是隻使用你的命名空間?關於擁有太多子域名的糟糕之處在於,您很可能需要獲取/管理多個SSL證書和/或購買通配符證書。這兩件事都沒有什麼大不了的,但不確定你在子域路線背後的推理。 – kobaltz 2014-09-27 02:56:09

+0

DNS級別的負載均衡主要有 – Tallboy 2014-09-27 04:37:16

+0

難題。我通常使用HAProxy將流量路由到不同的服務器。 – kobaltz 2014-09-27 13:15:45

回答

0

我真正想要做的是將我的路線文件的其餘部分封裝在constraints: { subdomain: nil }中,但我想知道「Rails方式」來做到這一點。

Rails的方式。

一個典型的Rails應用程序將只聽一個套接字而不關心域。通常您的網絡服務器將處理域/ IP地址和內部應用程序套接字(例如Apache VirtualHost)之間的映射。

當Web服務器將HTTP請求傳遞給應用程序時,Rails只對但對(子)域感興趣,除非另有配置。