【问题标题】:One domain name for multiple Rails apps with Nginx and Unicorn使用 Nginx 和 Unicorn 为多个 Rails 应用程序提供一个域名
【发布时间】:2014-11-08 09:37:42
【问题描述】:

我有两个 Rails 应用程序,我想用一个域名托管它们,如下所示:

app1.example.com
app2.example.com

我在数字海洋上有一个 VPS,我已经用 Nginx 和 Unicorn 运行了一个应用程序。这是我的 nginx 配置文件:

upstream app1{
  server unix:/tmp/unicorn.app1.sock fail_timeout=0;
}
#upstream app2{
#  server unix:/tmp/unicorn.app2.sock fail_timeout=0;
#}
server{
  listen 80; 
  root /var/www/app1/public;
  try_files $uri/index.html $uri.html $uri @app;
  location @app{
    proxy_pass http://app1;
  }
  error_page 500 502 503 504 /500.html;
}

似乎我需要另一个服务器块来托管另一个应用程序,但我不知道如何让 nginx 区分这两个服务器块,因为我只有一个域。有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails nginx unicorn digital-ocean


    【解决方案1】:

    好的,因为您已经定义了 2 个子域,您只需将 server_name 添加到 nginx 块中

    upstream app1{
      server unix:/tmp/unicorn.app1.sock fail_timeout=0;
    }
    upstream app2{
      server unix:/tmp/unicorn.app2.sock fail_timeout=0;
    }
    server{
      listen 80;
      server_name app1.domain.com;
      root /var/www/app1/public;
      try_files $uri/index.html $uri.html $uri @app;
      location @app{
        proxy_pass http://app1;
      }
      error_page 500 502 503 504 /500.html;
    }
    server{
      listen 80;
      server_name app2.domain.com;
      root /var/www/app2/public;
      try_files $uri/index.html $uri.html $uri @app;
      location @app{
        proxy_pass http://app2;
      }
      error_page 500 502 503 504 /500.html;
    }
    

    【讨论】:

      猜你喜欢
      • 2015-08-15
      • 2012-12-19
      • 1970-01-01
      • 2014-11-06
      • 2013-08-10
      • 1970-01-01
      • 2023-04-09
      • 2012-02-10
      • 2021-10-01
      相关资源
      最近更新 更多