ruby-on-rails - Nginx 配置 : one Server name and two Applications

标签 ruby-on-rails ubuntu nginx

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

我的情况是这样的。我们有一个名为“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 应用程序无需使用子域即可工作,我需要更改或添加什么?

谢谢

最佳答案

你需要什么关键字是'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 应用程序。 .
为此,请在虚拟主机的文档根目录中创建一个符号链接(symbolic link),并让它指向您的 Ruby on Rails 应用程序的公共(public)文件夹。例如:
ln -s /webapps/mycook/public /websites/phusion/rails

接下来,设置passenger_enabled 并将passenger_base_uri 选项添加到服务器 block :
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;
}

关于ruby-on-rails - Nginx 配置 : one Server name and two Applications,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18245339/

相关文章:

ruby-on-rails - 定义定时器方法 Controller rails

ruby-on-rails - 如何使用 Ruby on Rails 创建 Web 服务?

angular - 使用Nginx构建Docker镜像

nginx - 如何替换 HTTP 请求 URI 中的特殊字符?

具有相似前缀的 nginx 位置

css - 将类添加到 Ruby On Rails 公式中的 collection_select

ruby-on-rails - 在 Web 应用程序中显示最新的提交值?

php - 带有 Zend 的 Apache2 - 在错误的位置寻找 .htaccess

ubuntu - Minikube 服务 URL 无效

svn - 谷歌代码 SVN checkin 错误