1

我已经开发了几个准备部署的应用程序。为此,我已经配置了 Capistrano,并且我已经能够运行cap deploy,它运行正常。但是,我完全不知道如何从这里继续。我的设置是 EC2 + Rails 3.2 + Ruby 1.9.3 + Passenger + Nginx(第一次尝试启动时安装的一个 Passenger)+ Capistrano。

到目前为止,我只是passenger start在我的应用程序根文件夹上运行,它将在端口 3000 上启动乘客,然后我将在端口 3001 上启动第二个应用程序。现在,我需要将这两个应用程序放在 2 个不同的域下,比如 www。 domain1.com 和 www.domain2.com。

  1. 我现在应该如何启动服务器?我可以转到currentCapistrano 创建的各个文件夹并运行类似的东西passenger start -e production -p 3001 -d,它开始作为守护进程运行,但是,capistrano 不应该处理这个吗?我所看到的是,在每次部署时,它都会触及 restart.txt 文件并强制执行“软重启”,如果您更改了 gem,这还不够(据我所知)。Capistrano 不应该启动和停止Passenger,而不是我吗?

  2. 如何在 2 个域上运行 2 个应用程序?据我所知,您不能将域指向端口,而我现在所能做的就是通过在端口 80 上运行 Passenger 来运行 1 个应用程序rvmsudo,但当然这只适用于 1 个应用程序. 经过一番搜索,我发现了一些关于 Nginx 虚拟服务器的信息。你怎么做到这一点?我的意思是,我从来没有接触过任何特定于 Nginx 的东西,只是Passenger!我应该忘记Passenger并将Nginx作为服务处理吗?如何?

提前致谢!

4

1 回答 1

1

我相信启动服务器有一个特定的 cap 命令来启动服务器,但我对 capistrano 了解不多,只是之前玩过一点。

至于第二部分,这是 nginx 参与的地方,nginx 将使用proxy_pass处理将每个域转发到特定端口,看看这个例子

server {
    server_name: example1.com;
    proxy_pass: http://127.0.0.1:3000;
}
server {
    server_name: example2.com;
    proxy_pass: http://127.0.0.1:3001;
}
于 2013-06-25T11:51:33.173 回答