我正在使用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
当我运行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网址上显示“欢迎使用Amazon Linux AMI上的nginx!您现在应该将您的内容放在您选择的位置并在nginx配置中编辑根配置指令文件/etc/nginx/nginx.conf。“ 当我取消注释根目录然后给我403错误! 日志文件说“current / public / index.html”被禁止(13:Permission denied)“
答案 0 :(得分: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 /
答案 1 :(得分:0)
检查nginx配置中的端口是否在AWS面板上打开。 检查您是否可以使用telnet连接到该端口 检查你是否有nginx,乘客在服务器上运行
$ ps -el | grep nginx
检查nginx访问和错误日志是否可以看到您自己的活动试图点击该服务。