2016-03-17 33 views
2

我將一個Meteor應用程序部署到IBM Bluemix,它創建了一個地址,如myapp.mybluemix.net如何在Bluemix上託管的流星中強制規範URL?

裏面Bluemix面板,因爲我們有自己的自定義域,我的地址myapp.com註冊,然後我創建了三個路線:myapp.mybluemix.netmyapp.comwww.myapp.com。我也創建了一個環境變量ROOT_URL = 'www.myapp.com',因爲我們想要www。使用版本代替裸域。

在DNS提供程序面板中,我將CNAME記錄設置爲www.myapp.com CNAME myapp.mybluemix.net,將A記錄設置爲myapp.com A XXX.XXX.XXX.XXX(指向Bluemix主機的公共IP)。

所有這些,我的應用程序是開放好,但複製的URL。然後我發現Canonical package,並重新發布了我的應用程序,其中包括希望解決規範需求。

不幸的是,所有對myapp.comwww.myapp.com的請求都會重定向到myapp.mybluemix.net

我看不出有什麼配置導致這個問題。我錯了什麼描述的步驟?

回答

5

按照以下幾個步驟幫我配置規範網址:

1)安裝規範流星包

2)配置兩條路線到應用程序(裸體和www子域)

enter image description here

3)設置CF環境變量:cf set-env leadershipboard ROOT_URL "http://www.vamsee.ml"

4)配置DNS服務器的CNAME將通信路由到Bluemix應用: enter image description here

5)使用稍微改性的流星buildpack :https://github.com/JProgrammer/cf-meteor-buildpack

希望它幫助。

+0

真的非常感謝你提供的步驟,幫了我很多!最後我相信真正的問題是Buildpack沒有設置ROOT_URL。無論如何,我嘗試了以下所有步驟,但需要兩個不同的東西:* 1. *我需要將myapp.mybluemix.net作爲第三條路線(沒有它,我收到了404錯誤); * 2. *我的DNS提供商不允許裸域名的CNAME,所以我還創建了一條指向該應用IP地址的A記錄。 –

1

我覺得很可能是錯誤不是與自定義域配置(這是工作的罰款,因爲根據你的描述所有的路由都正確解析),但與WWW重定向你正在做,使www.myapp。 com默認主機。

如果你提供更多的細節你已經實現了它,我們可以幫助您找出可能是錯誤

+0

從裸域到* WWW *子域重定向是在[規範包(https://atmospherejs.com/wizonesolutions/canonical),我所引用的內部實現。查看源代碼(https://github.com/project-ricochet/meteor-canonical/blob/master/canonical_server.js),它永久的'301 redirect'到'ROOT_URL'如果'request.headers .host'不等於它。由於我的'ROOT_URL'已經是'www.myapp.com',有什麼可能會出錯? –

+0

我不知道如果buildpack無法讀取ROOT_URL?請參閱:https:// github。com/cloudfoundry-community/cf-meteor-buildpack/pull/12,你可以試試這個buildpack:https://github.com/JProgrammer/cf-meteor-buildpack – vmovva

+0

我想知道,如@vmovva告訴它不能閱讀ROOT_URL,或者你的設置是有效的,並且ROOT_URL被設置爲http://myapp.mybluemix.net 它似乎表現得像你已經將ROOT_URL設置爲http://myapp.mybluemix.net 你能告訴你如何設置ROOT_URL變量? –