我遵循了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;
}
所有域和子域都指向服务器(x.x.x.x)。我不确定如何在同一台服务器中使用带有两个rails应用程序的独角兽,即使我在nginx.conf中正确设置了虚拟主机。
有什么建议可以从哪里开始查看或修改内容?
谢谢!
答案 0 :(得分: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;}
}