2013-10-05 20 views
2

背景:Nginx的主機上分URI一個Rails應用程序

  • 我在後面跟着跑反向代理一個debian 7服務器。
  • 我有一個軌道4應用程序運行的Ruby 2.0.0-P247
  • 我使用nginx的
  • 服務器通過導航到訪問:server-name.foo.dev其中foo.dev是內部反向代理域。
  • 我無法使用乘客來部署應用程序。
  • 這將是在服務器上運行的唯一應用程序。

問題:

我需要應用主機背後的反向代理服務器上的一個子URI或上下文根路徑上的軌道,這樣,當用戶瀏覽的網站,網址爲根路徑看起來像這樣:

  • server-name.foo.dev/rails_app,其中rails_app將成爲rails應用程序的根。

我該如何在nginx網站啓用的配置文件中設置它,並且有什麼我需要在rails應用程序上修改以允許它切斷靜態內容的正確路徑。

回答

0

我強烈建議使用Unicorn來代替Passenger。 您可以將它們(Unicorn和Nginx)都設置爲反向代理。 This link對你來說是相當不錯的紙張。

同樣,你將''(Nginx路由特性)/ rails_app重寫到rails應用程序的Unicorn套接字文件(通常使用上游)。

另請參閱下面的代碼片段。

部分nginx.conf

location ~* ^/(rails_app)/ { 
    root /your/rails/home; 
    index index.html index.htm; 
    proxy_pass http://socket_proxy_name; 
} 

爲proxy_pass

upstream socket_proxy_name{ 
    server unix:/your/socket/paht.sock fail_timeout=0; 
} 
+0

部分片段,我得到這個工作服務我在本地主機/ claxon,其中claxon是我的應用程序的根應用。現在,我將如何配置nginx或我的rails應用程序來提供靜態資產和樣式表/ js/etc?它仍然在尋找本地主機/資產...的鐵路資產。 – CorreyS

+0

用rails處理你的靜態資產是個壞主意。 Nginx提供的靜態資源比rails更快。 「我如何爲Rails應用程序的資產提供服務?」的答案很容易找到。這個鏈接對你有幫助。 「http://stackoverflow.com/questions/6402278/serving-precompiled-assets-with-nginx」。歡呼:) – humbroll

+0

我應該改述我的問題:當我導航到本地主機/克拉克森,它是服務的HTML,但沒有造型,因爲它仍然在尋找樣式在本地主機/資產/ ...我如何得到軌道看爲其在localhost/claxon/assets的資產? – CorreyS

相關問題