1

抱歉,这个问题可能已经被回答了,但我找不到对我有帮助的答案。

我的情况是这样的。我们有一个名为“helper.local.company”的内部服务器,我们目前使用它来运行 Rails 应用程序。要到达那里,用户只需键入“helper.local.company/ror_app1_route”

我现在想在服务器上安装另一个应用程序,然后让用户只输入 helper.local.company/ror_app2_route 来访问新应用程序。

我当前的 nginx 配置文件如下所示:

server {
  listen       80      default_server;
  server_name helper.local.company;

  root /var/www/apps/ror_app1/current/public;

  passenger_enabled on;
  rack_env production;
}

为了让两个 Rails 应用程序无需使用子域即可工作,我需要更改或添加什么?

谢谢

4

1 回答 1

0

你需要什么关键字是'passenger_base_uri'

参考来自:http ://www.modrails.com/documentation/Users%20guide%20Nginx.html#deploying_rails_to_sub_uri

下面是一个简单的例子

假设您已经有一个服务器虚拟主机条目:http { ...

server {
    listen 80;
    server_name www.phusion.nl;
    root /websites/phusion;
    }
...

}

并且您希望可以从 URL http://www.phusion.nl/rails访问您的 Ruby on Rails 应用程序。为此,请在虚拟主机的文档根目录中创建一个符号链接,并让它指向您的 Ruby on Rails 应用程序的公共文件夹。例如:

ln -s /webapps/mycook/public /websites/phusion/rails

接下来,设置passenger_enabled 并将passenger_base_uri 选项添加到服务器块:

http {
...

server {
    listen 80;
    server_name www.phusion.nl;
    root /websites/phusion;
    passenger_enabled on;        # <--- These lines have
    passenger_base_uri /rails;   # <--- been added.
    }
...
}

然后重启 Nginx。现在已经部署了应用程序。

通过多次指定passenger_base_uri,您可以在虚拟主机下部署多个Rails 应用程序。例如:

server {
...
passenger_base_uri /app1;
passenger_base_uri /app2;
passenger_base_uri /app3;
}
于 2013-08-15T03:15:20.393 回答