Nginx适用于具有不同子域的多个应用

时间:2013-08-26 10:29:47

标签: ruby-on-rails nginx

一直试图寻找时间但似乎无法找到解决方案。我想通过nginx在一个服务器中设置多个应用程序。目前的nginx.conf如下:

server {
    listen 80;
    server_name mydomain.co;
    root /mydomain/current/public;
    passenger_enabled on;
    rails_env production;
}

server {
    listen 80;
    server_name testing.mydomain.co;
    root /mydomain-test/current/public;
    passenger_enabled on;
    rails_env test;
}

它提供正确的环境(测试)但不提供正确的代码库。我通过ssh检查了目录mydomain-test,它包含了最近的代码,但是没有被nginx服务。

基本上,我想要的是:

mydomain.co to serve /mydomain/current/public
testing.mydomain.co to serve /mydomain/current/public

这是如何正确完成的?

1 个答案:

答案 0 :(得分:0)

我认为root指令应该在location部分。我不确定rails指令和passenger_enabled指令,但其余的与我使用和工作的类似。最好还指定索引脚本(我将它设置为index.php,但会根据需要进行更改)。

完成更改后,请务必重新启动nginx。

server {
    listen 80;
    server_name mydomain.co;
    location / {
        root /mydomain/current/public;
        index  index.php;
    }
    passenger_enabled on;
    rails_env production;
}

server {
    listen 80;
    server_name testing.mydomain.co;
    location / {
        root /mydomain-test/current/public;
        index  index.php;
    }
    passenger_enabled on;
    rails_env test;
}