簡體   English   中英

使用Passenger for Nginx部署多個Ruby應用程序(Rails和Sinatra)?

[英]Multiple Ruby apps (Rails and Sinatra) deployed using Passenger for Nginx?

我有兩個Ruby應用程序,一個在Rails下,另一個在Sinatra下。

如何在Nginx和Passenger中部署這些應用程序,其中一個在根目錄(“localhost:3000”)中,另一個在subroot中(“localhost:3000 / test”)?

Rails應用程序正在使用此配置運行。 一切似乎都運作正常:

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /var/www/demo/public;
        passenger_enabled on;
        rails_env production;
    }

    location /test/ {
        root   /var/www/test/public;
        passenger_base_uri /test/;
        proxy_pass http://10.0.3.12:80/test/;
        passenger_enabled on;
    }

我無法訪問第二個應用程序。

服務器為第二個應用程序返回404,第一個應用程序仍在運行。

我相信您需要定義本地服務器,只能在本地端口上偵聽並在那里定義您的乘客應用程序。 您在端口上偵聽的實際服務器應僅充當代理。

server {
  listen              localhost:8181;
  server_name         test_app;
  root                /var/www/test/public;
  passenger_enabled  on;
}

server {
  listen              localhost:8182;
  server_name         demo_app;
  root                /var/www/demo/public;
  passenger_enabled   on;
  rails_env production;
}

server {
  listen       80;
  server_name  localhost;

  location / {
    proxy_pass http://localhost:8182/;
  }

  location /test/ {
    proxy_pass http://localhost:8181/;
  }
}

我沒有機會測試這個配置,所以它可能有一些小的缺陷,但它在高級術語中應該是正確的。

在nginx.conf中:

server {
   listen       80;
   server_name  localhost;
   location / {
       root   /var/www/new/public;
       passenger_enabled on;
       rails_env production;
   }
location /test {
    root   /var/www/demo;
    passenger_base_uri /test;
    passenger_enabled on;   
}

添加軟鏈接:

ln -s /var/www/loggerapp/public /var/www/new/test

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM