私はたくさんのGoogle検索をしましたが、私のサイトをec2にデプロイする方法はまだ見つかりません。 誰でも私にec2についてもっと説明できますか?私は開発のためにUbuntu11.04を使用しています。 私は乗客+ nginxを使用して配備しています。ありがとうAmazon Ec2へのレール3.1アプリケーションのデプロイ
答えて
私はcapistranoを使ってRails 3.1アプリをEC2マイクロインスタンスに配備しています。私はrvmを使って自分のEC2にRubyをセットアップしました。私は薄いものを使ってきましたが、今週末、私はUnicornに切り替えてテストしました。私は自分がやっていることを分かち合い、それに応じて旅客を使う方法を考え出すことができます。私は専門家ではないので、人々がこれについて何らかの提案をしているなら、どんなコメントも歓迎します。 :)
私は配備の "rake assets:precompile"段階でまだ問題があることを指摘したいと思います。それは第3段階の資産、すなわちプリコンパイル:nodigestになり、終了コードなしで失敗します。私はだと思います。メモリが不足している可能性があります。それは展開をロールバックしていません。私が「rake assets:precompile:nodigest」を実行すると、それが完了して完了し、すべてがうまくいく。これは、EC2マイクロインスタンスにデプロイするときにのみテスト用にVMにデプロイするときには発生しません(これは、EC2マイクロが小さいためOOMエラーである可能性があると私に思います。 。
それにもかかわらず、ここに私が持っているものがあります。多分あなたが起きて走っていくのを助けるでしょう。私のGemfileから
いくつかの関連する事柄:
gem 'rails', '3.1.1'
group :assets do
gem 'jquery-rails',
gem 'sass-rails', "~> 3.1.4"
gem 'coffee-rails', "~> 3.1.1"
gem 'uglifier', ">= 1.0.3"
gem 'compass', :git => 'git://github.com/chriseppstein/compass.git', :branch => 'master'
end
group :production do
gem 'therubyracer'
end
gem 'unicorn'
Capfile:
load 'deploy' if respond_to?(:namespace)
load 'deploy/assets'
Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
load 'config/deploy'
のconfig/deploy.rb:
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require "rvm/capistrano"
require "bundler/capistrano"
role :app, "your-ec2-domain"
role :db, "your-ec2-domain", :primary => true
set :user, "your-login-username"
set :application, "your-app-name"
set :scm, :git
set :repository, "."
set :branch, "deploy" # or whatever git branch you deploy from
set :deploy_via, :copy
set :deploy_to, "/home/#{user}/rails/#{application}"
set :use_sudo, false
set :rails_env, "production"
set :rvm_ruby_string, "ruby-1.9.2-p290"
set :rvm_type, :user
set :unicorn_pid do
"#{shared_path}/pids/unicorn.pid"
end
before "deploy:assets:precompile", "bundle:install"
namespace :deploy do
task :start do
top.unicorn.start
end
task :stop do
top.unicorn.stop
end
task :restart do
top.unicorn.reload
end
end
namespace :unicorn do
desc "start unicorn server"
task :start, :roles => :app do
run "cd #{current_path} && bundle exec unicorn -E #{rails_env} -D -P #{unicorn_pid}"
end
desc "stop unicorn server"
task :stop do
run "kill -s QUIT `cat #{unicorn_pid}`"
end
desc "restart unicorn"
task :restart do
top.unicorn.stop
top.unicorn.start
end
desc "reload unicorn (gracefully restart workers)"
task :reload do
run "kill -s USR2 `cat #{unicorn_pid}`"
end
desc "reconfigure unicorn (reload config and gracefully restart workers)"
task :reconfigure, :roles => :app do
run "kill -s HUP `cat #{unicorn_pid}`"
end
end
マイnginx.conf:
user www-data;
worker_processes 1;
pid /var/run/nginx.pid;
events {
worker_connections 768;
accept_mutex off;
}
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/access.log combined;
error_log /var/log/nginx/error.log;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
tcp_nodelay off;
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
次に、/ etc/nginx/sites-availableの下で、サイト用のファイルを作成する必要があります。私たちは、それがfoobar.conf呼びます:
upstream rails {
server unix:/tmp/.sock fail_timeout=0;
server 127.0.0.1:8080 fail_timeout=0;
}
server {
listen 80 default deferred;
server_name foobar.com
access_log /var/log/nginx/rails.access.log main;
# foobar is your project. current is a symlink setup by capistrano
root /home/username/rails/foobar/current/public;
location/{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://rails;
}
location ~ ^/assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
error_page 500 502 503 504 /500.html
location = /500.html
root /home/username/rails/foobar/current/public;
}
}
その後、あなたはあなただけの/ etc/nginxの/サイト利用可能で作成したファイルからシンボリックリンクを作成し、/ etc/nginxの/サイトへのシンボリックリンクのポイントを作る必要があります-enabled/foobar
- 1. UbuntuのAmazon EC2のTomcat 7へのWebアプリケーションのデプロイ
- 2. Amazon EC2コンテナサービスでAmazon EC2にdocker node.jsアプリケーションをデプロイする方法
- 3. Amazon EC2とBeanstalkのデプロイ
- 4. AWS EC2へのHapi.jsアプリケーションのデプロイ
- 5. Amazon S3へのAmazon EC2バックアップソリューションの作成
- 6. ヘルプAmazon EC2インスタンスへのアクセス
- 7. Amazon EC2インスタンスへのRsync
- 8. Amazon EC2へのPostgreSQL SSHトンネル?
- 9. AppveyorのAmazon S3へのデプロイ
- 10. Amazon EC2でJava warとRailsアプリケーションをApacheにデプロイする
- 11. Amazon WebアプリケーションのホスティングAWS EC2
- 12. Amazon EC2のAutoscale Railsアプリケーション
- 13. ラバーを使用したAWS/EC2へのRailsアプリケーションのデプロイ
- 14. AWS EC2にFlaskアプリケーションをデプロイ
- 15. Amazon EC2複数インスタンス、SVNアプリケーション
- 16. Amazon Webサービス(EC2)for Androidアプリケーション
- 17. Rails 3.1からJBoss 4.2.2へのデプロイ
- 18. amazon ec2のリモートマシンへのファイル転送
- 19. Amazon EC2 Bigrockドメイン名へのリンク
- 20. Amazon EC2価格表へのAPIアクセス?
- 21. jQueryのレール3.1
- 22. amazon ec2(beanstalk)のデプロイ済みファイルを編集する権限
- 23. Amazon EC2への接続Amazon Aurora MySQL、Spring起動App
- 24. amazon Ec2のプロトタイプ
- 25. amazon ec2のソフトウェアライセンス
- 26. Amazon EC2のスナップショット
- 27. Amazon EC2のワーカーフレーム
- 28. 特定のアプリケーションへのデプロイ
- 29. Bluemixへのアプリケーションのデプロイ
- 30. HerokuへのJavaアプリケーションのデプロイ
http://www.heroku.com/ ec2にデプロイしますが、herokuのミドルウェアをプレミアムに使用します。彼らは無料の層と多くの便利なサービスを持っています – Hortinstein
AWSの無料のティアの使い方を利用しようとしているので、herokuは当面私の選択肢ではありません... AWSにレールを展開するのは非常に難しいですか? EC2への配備 –
は他のサーバへの配備と同じです。 – NARKOZ