Sytuacja wygląda tak: na serwerze jest zainstalowane rails 2.3.8, mongrel i puszczone jest to przez nginxa (poprzez ssl). Chce uruchomić na tym serwerze drugą aplikacji, tak żeby pierwsza działała jak działa, a druga jak do momentu finalnego sprawdzenia czy działa wszystko ok ma być jak aplikacja dodatkowa a nie główna.
W związku z tym zainstalowalem rvma (wiem, że nie powinno się tak robić, ale nie mogę wyłączyć pierwszej aplikacji na bliżej nieokreślony czas). Druga aplikacja działa na rails 3.0.3 (w tej wersji została napisana, wkrótce mam zamiar zaktualizować ją do 3.0.10 lub nawet do 3.1.0 jak w końcu to wyjdzie). Działa na serwerze thin. I teraz czy wpisuje
rails s
czy this start
aplikacja niby mi się uruchamia na porcie 3000, ale jak próbuje wejść do tej aplikacji po wpisaniu [domena]:3000 to strona się ładuje i ładuje i w końcu się nie załaduje.
Mógłby ktoś pomóc, byłbym bardzo wdzięczny, zresztą jak zawsze jestem wdzięczny za otrzymaną tu pomoc.
i pokazł się błąd bazy danych (to prawidłowo, bo bazy danych jeszcze nie uzupełniłem tabelami), czyli wynika z tego, że inny serwer pomiędzy moim a moim komputerm blokuje port 3000, jak można w nginxie ustawić, żeby port 3000 przekazać na np http(s)://domena.pl/cos
EDYCJA:
Znalazłem coś takiego: http://www.johnyerhot.com/2008/05/27/mongrel-nginx-deploying-to-a-subdirectory/, wkrótce to sprawdze…
Udało mi się już zmienić strukturę bazy danych w tej drugiej aplikacji, po wykonaniu polecenie
rails s
domyślną ścieżką dla grafiki, plików css itd, jest http://domena.pl/
a nie http://domena.pl/test
wszystkie obrazki dostają url http://domena.pl/images/...
a nie http://domena.pl/test/images/...
Mój plik nginxa wygląda mniej więcej tak:
}[/code]
Stara aplikacja chodzi pod Rails2 na mongrelu, więc jest tam mongrel, nowa będzie chodziła na thinie.
Pojawił się jeszcze jeden problem związany z tym, że jak chce wejść na jakąś podstronę w tej drugiej aplikacji to pojawia się Error 500, to zapewne jest wina złego przekierowania w nginx.
[code]Started GET “/beta/images/flags/pl-PL.png?1314387375” for xxx.xxx.xxx.xxx at 2011-09-22 20:17:56 +0200
ActionController::RoutingError (No route matches “/images/flags/pl-PL.png”):[/code]
Strony (i podstrony) ładują się, jednak pliki zewnetrzne (grafika, css, js) już nie.
config.action_controller.asset_host ustawiasz tylko jeżeli masz assets na innym serwerze, np na jakimś CDN. zakomentuj tą linijkę i sprawdź czy zadziała.
Sprawdziłem i jeśli nie ustawię config.action_controller.asset_host to obrazki szukane są w aplikacji uruchomionej pod adresem domena.pl a nie domena.pl/beta. Kurcze w środowisku developerskim to działa a w produkcji już nie.
w logach nginxa mam coś takiego:
2011/09/22 20:53:35 [error] 39799#0: *8 kevent() reported about an closed connection (61: Connection refused) while reading response header from upstream, client: xxx.xxx.xxx, server: domena.pl, request: "GET /beta/ HTTP/1.1", upstream: "http://127.0.0.1:5000/beta/", host: "domena.pl"
Podsumowując skoro strona główna i podstrony są ładowane bez problemu a jest jedynie problem z assetami, to chyba trzeba coś w railsach ustawić, ale co to nie wiem.