1

我遵循了 Rails Casts 中的教程:#335 Deploying to a VPS。我有一个使用 Ubuntu 10.04 映像设置的 linode VPS,我可以部署到它。现在它正在服务:

/home/user0/first-rails-app/public (domain1.com) 

我想使用 nginx 为另一个 rails 应用程序和一个 php 应用程序提供服务,假设它们存储在这里:

/home/user1/php-app/public (domain2.com)
/home/user2/another-rails-app/public (subdomain.domain1.com)

我的 nginx.conf

upstream unicorn {
  server unix:/tmp/unicorn.blog.sock fail_timeout=0;
}

server {
  listen 80 default deferred;
  # server_name example.com;
  root /home/user0/first-rails-app/public;

  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  try_files $uri/index.html $uri @unicorn;
  location @unicorn {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://unicorn;
  }

  error_page 500 502 503 504 /500.html;
  client_max_body_size 4G;
  keepalive_timeout 10;
}

所有域和子域都指向服务器(xxxx)。即使我在 nginx.conf 中正确设置了虚拟主机,我也不确定如何在同一服务器中使用 unicorn 和两个 rails 应用程序。

有什么建议从哪里开始寻找或修改什么?

谢谢!

4

1 回答 1

0

你只需要在你的conf中声明多个上游

upstream app1 { server unix:/tmp/app1.sock; }
upstream app2 { server unix:/tmp/app2.sock; }

server {
  server_name http://www.example.com
  location /foo {proxy_pass http://app1; break;}
  location /bar {proxy_pass http://app2; break;}
}
于 2012-06-05T10:47:50.030 回答