我遵循了Rails Casts中的教程:#335部署到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;
}
所有域和子域都指向服务器 (x.x.x.x)。我不确定如何将独角兽与同一服务器中的两个 rails 应用程序一起使用,即使我在 nginx.conf 中正确设置了虚拟主机。
有什么建议从哪里开始寻找或修改什么?
谢谢!
你只需要在你的 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;}
}