2012-08-22 82 views
2

每個Elastic Beanstalk環境都有一個關聯的URL(在帶有環境的Elastic Load Balancer上)。在EB的Java/Tomcat風格中,是否有一種方法可以查詢該URL,因此可以在應用程序中動態使用它?有沒有一種方法可以確定Elastic Beanstalk上的Tomcat環境的URL?

我目前的解決方法是將URL作爲參數傳遞給容器,但切換實時部署的環境URL時不能很好地工作。

+0

在什麼時候在你的應用程序的生命週期中,你需要說的網址?如果它響應客戶端請求,則可以操縱[HttpServletRequest#getRequestURL()](http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html# getRequestURL())或類似的API? – Charlie

+0

該URL只是 .elasticbeanstalk.com不是嗎?你可以從應用程序名稱構造它嗎? – Christopher

+0

@Charlie我想這可能適用於響應,但我實際上在配置之前也需要它。似乎應該有一種方式讓EB將這種配置數據傳遞到JVM或Tomcat容器中。 – bmajz

回答

1

是的,它的作用。

後端負載均衡器在調用時轉發其他URL。

檢查請求頭「主機」和「X - 轉發,主機」

0

根據評論請求:您的應用程序生命週期中的哪個點需要上述URL?如果它是針對客戶請求做出的迴應,那麼您可以操縱從HttpServletRequest#getRequestURL()或類似API獲得的內容嗎?

(我很好奇,你用什麼補充,這滿足您的需求)

+0

當您在批量作業中生成RSS源時(例如,不響應請求),您可能需要此操作。 –

相關問題