1

我正在使用 capistrano、nginx 和乘客从 ec2 上的 github 部署我的 rails 3 应用程序。

这是我的 deploy.rb 文件:

set :application, "my-Blog"

set :repository,  "https://github.com/whatever/my-Blog.git"

set :scm, :git

role :app, "ec2 DNS"

role :web, "eec2 DNS"

role :db,  "ec2 DNS", :primary => true

set :user, 'ec2-user'

set :deploy_to, "/home/ec2-user/apps/Blog"

set :use_sudo, false

default_run_options[:pty] = true

set :deploy_via, :remote_cache

ssh_options[:keys] = ["#{ENV['HOME']}/.ssh/my-key.pem"] 

set :keep_releases, 3

namespace :deploy do

  task :start do ; end

  task :stop do ; end

  task :restart, :roles => :app, :except => { :no_release => true } do

  end

 end

当我运行部署命令时,一切都很好,我的应用程序在我的当前目录下的 ec2 上,这意味着 capistrano 可以从我的 github 获取我的源代码。

在我的 ec2 实例上,我已经设置好了所有内容:ruby、rvm、mysql、rails、nginx、passenger。

但是当我转到我的 ec2 DNS 时,它没有显示我的应用程序!

你有什么建议可能是错的吗?这是我的第一次部署!

感谢您的回答!我希望看到我的申请!在 aws 控制台中,我有:22(SSH)和 80(HTTP),我猜这意味着端口 80 是打开的。我认为我的 nginx 配置文件应该有问题,这就是我在这个文件中的内容:

用户 nginx;

server {

          listen 80;
          server_name ec2-54-242-228-182.compute-1.amazonaws.com;
        #  root /home/ec2-user/apps/Blog/current/public;
         # passenger_enabled on;
        }

}

当我评论根目录时,公共 DNS url 上显示“欢迎使用 Amazon Linux AMI 上的 nginx!您现在应该将您的内容放在您选择的位置并在 nginx 配置文件 /etc 中编辑根配置指令/nginx/nginx.conf。” 当我取消注释根目录然后给我403错误!日志文件说“current/public/index.html”被禁止(13:权限被拒绝)“

4

2 回答 2

0

检查 nginx 配置中的端口是否在 AWS 面板上打开。检查是否可以使用 telnet 连接到端口 检查服务器上是否有 nginx、passenger 运行

$ ps -el | grep nginx

检查 nginx 访问和错误日​​志,您是否可以看到自己的活动试图访问该服务。

于 2012-11-09T23:42:13.440 回答
0

答案取决于你所说的不出现是什么意思。如果您正在获取默认网页,那么您的网络服务器可能正在尝试解析基于名称的虚拟主机。在这种情况下,请尝试将您的 EC2 实例的公共 IP 地址添加到您的本地hosts文件中。

123.456.789.012  domain-nginx-expects.com

如果服务器根本没有响应,请检查进程列表并确保 nginx 和乘客正在运行。还要检查该实例的 EC2 安全组,以确保端口 80 已打开。您还可以在登录服务器时尝试远程登录到端口 80:

$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /
于 2012-11-08T06:00:54.200 回答