2013-01-04 76 views
0

我跟着這些說明應用程序部署我的軌到suburi:Suburi部署停止工作mysterously

http://www.modrails.com/documentation/Users%20guide%20Apache.html#deploying_rails_to_sub_uri

在12月23日我的應用程序是一個suburi和做工精細下部署。當我在十二月嘗試它時。 26我注意到像stylesheet_link_tag這樣的url助手不再使用RackBaseURI。所以,而不是請求//myapp.com/suburi/app/assets/application.css我的瀏覽器正在請求//myapp.com/assets/application.css當然,這是一個404。我從這兩個應用程序中查看所有日誌和Apache,並沒有看到任何可疑的東西。

重新啓動apache使得suburi突然重新開始工作。

這裏是我的vhost.conf https://gist.github.com/4382822

任何人有任何想法我可能是做錯了?

+0

我已經在這方面取得了一些進展。這個問題對乘客來說可能不是問題,但我仍然不理解這種行爲。如果有人直接訪問我的服務器的IP地址,而不是使用服務器名稱,則會出現此問題。在這種情況下,應用程序將忽略RackBaseURI並在沒有suburi的情況下響應。然後,該css的不正確路徑被應用程序緩存。不是由apache或其他外部的東西。我仍然試圖理解爲什麼RackBaseURI被忽略,如果你不使用服務器名稱,爲什麼它被緩存。 – joshuacronemeyer

+0

所以我對自己遇到的問題有了更好的理解。此處描述此問題:https://groups.google.com/forum/?fromgroups=#!topic/phusion-passenger/OztSsKQGHXs – joshuacronemeyer

回答

1

所以我終於想通了這個問題是,如果你有一個乘客應用程序設置爲使用像http://local-webservice.localhost/sub/uri/route sub-uri,但重新啓動後的第一個請求通過應用程序如http://local-webservice.localhost/route然後乘客將基本上扔掉你的子uri配置,直到你重新啓動應用程序。

解決方案給我in the passenger google group,但我在這裏包括它希望它可以幫助別人。這是我到達的答案:

這是由於Phusion Passenger目前唯一標識 應用程序的方式。它目前只通過應用程序根目錄來完成。 假設您在foo.com,bar.com和 baz.com/suburi上部署了/ webapps/foo。 Phusion Passenger會將它們全部識別爲相同的應用程序,就在不同的域和子URI之下。

這是我們希望在未來版本中修復的內容。但現在,到 使其按照您的預期工作,請爲您的子URI部署設置一個不同的PassengerAppGroupName以用於 。例如:

<Location /suburi/app> 
    PassengerAppGroupName suburi_app 
</Location> 
0

沒有什麼我可以看到你做錯了你提供的東西。也許這是Passenger中的一個錯誤。

我想不出任何會使RackBaseURI開始工作,然後停止工作而沒有apache重新啓動,然後在apache重新啓動後再次開始工作,沒有其他更改 - 除了乘客的錯誤。希望它不會再發生。我自己經常使用RackBaseURI,並沒有看到這個問題。

也有可能(也許更有可能)發生了一些奇怪的事情,這不是乘客中的錯誤,而是我們沒有足夠的信息來了解這裏。你確定apache在dec 23和26之間沒有重啓?您確定在任何時候都沒有更改任何配置文件(apache或rails)?或者預編譯你的資產,或者在./tmp/cache或者其他方面創建或者刪除文件? (後者中的任何一個都不會以任何方式破壞事物,但它們至少是可以相互關聯的東西,它是作品 - 不是 - 不會改變任何有點不可思議的文件(對我來說無論如何!),但是在乘客的一個錯誤