使用nginx乘客在VPS上运行两个应用程序

时间:2013-09-04 10:27:51

标签: ruby-on-rails nginx passenger

我正在数字海洋上使用rails应用程序。它的工作完美。我想在同一个VPS上主持一个Sinatra应用程序。我已经设置了名称服务器和DNS。

我的opt/nginx/conf/nginx.conf是:

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    passenger_root /home/deploy/.rvm/gems/ruby-2.0.0-p0/gems/passenger-4.0.0.rc6;
    passenger_ruby /home/deploy/.rvm/wrappers/ruby-2.0.0-p0/ruby;

    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
    listen 80;
    server_name  domain1.com;
    charset utf-8;
    root /home/deploy/apps/domain1/current/public;
    passenger_enabled on;
    rails_spawn_method smart;
    rails_env production;
    }
    server {
    listen 80;
    server_name  domain2.com www.domain2.com;
    charset utf-8;
    root /home/deploy/apps/domain2-path/public;
    passenger_enabled on;
    rails_spawn_method smart;
    }
}

现在当我去domain2.com时,它会加载domain1.com的应用程序,我做错了什么。

PS:Domain1.com是rails applicion,Domain2.com是sinatra应用程序。

1 个答案:

答案 0 :(得分:0)

您不能仅通过定义另一个DNS地址来执行此操作。 您应该在不同的URL上运行其他应用程序。

然后做这样的事情:

upstream rails {
    server 127.0.0.1:8000;
}

upstream sinatra {
    server 127.0.0.1:7000;
}

server {
    location /rails {
        proxy_pass http://rails;
    }
    location /sinatra {
        proxy_pass http://sinatra;
    }
}