Nginx 在ec2上部署我的rails 3应用程序后,它不会呈现我的应用程序

Nginx 在ec2上部署我的rails 3应用程序后,它不会呈现我的应用程序,nginx,amazon-ec2,capistrano,passenger,Nginx,Amazon Ec2,Capistrano,Passenger,我正在使用capistrano、nginx和passenger在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", :pr

我正在使用capistrano、nginx和passenger在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
当我运行deploy命令时,一切正常,我的应用程序位于当前目录下的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:权限被拒绝)“

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

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

$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /

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

$ ps -el | grep nginx

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

该数据未发布。也许发个要点?另外,telnet测试发生了什么?谢谢你的回答。我希望在公共DNS url上看到我的应用程序!我在我的问题中添加了更多详细信息>我的实例的端口80已打开,我的实例安全组中有80(HTTP)。感谢您的回答。我在问题中添加了更多细节。这是我第一次部署!当我运行时:ps-ax | grep nginx警告:语法不好,可能是假的“-”?请参见/usr/share/doc/procps-3.2.8/FAQ 3380?SS0:00nginx:masterprocess/usr/sbin/nginx-c/etc/nginx/nginx.conf3382?s0:00nginx:worker进程3384 pts/0s+0:00grep nginx