【问题标题】:Nginx Config: one Server name and two ApplicationsNginx Config:一个服务器名和两个应用程序
【发布时间】:2013-08-15 11:15:20
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: ruby-on-rails ubuntu nginx


    【解决方案1】:

    您需要的关键字是“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;
        }
    ...
    
    }
    

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

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

    接下来,将passenger_enabled 设置为on 并将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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-29
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      相关资源
      最近更新 更多