現状:
デプロイしてアプリを表示したいです。
エラーログには特に記述もありません。
セキュリティグループもHTTPタイプの接続を解放してあります。
mysql、nginx、unicornは起動確認済みです。
おそらくnginxとunicornが上手く連動していないことが考えられますが
手詰まりになりました。
※(デプロイ編②)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで
を参考にしました。
諸条件
node v12.14.1
npm 6.13.4
unicorn v5.5.2
nginx version: nginx/1.16.1
ruby 2.3.1p112
Rails 5.1.6
ユニコーンの設定
$ /var/www/rails/アプリ名/config/unicorn.conf.rb
# set lets $worker = 2 $timeout = 30 $app_dir = "/var/www/rails/アプリ名" $listen = File.expand_path 'tmp/sockets/.unicorn.sock', $app_dir $pid = File.expand_path 'tmp/pids/unicorn.pid', $app_dir $std_log = File.expand_path 'log/unicorn.log', $app_dir # set config worker_processes $worker working_directory $app_dir stderr_path $std_log stdout_path $std_log timeout $timeout listen $listen pid $pid # loading booster preload_app true # before starting processes before_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! old_pid = "#{server.config[:pid]}.oldbin" if old_pid != server.pid begin Process.kill "QUIT", File.read(old_pid).to_i rescue Errno::ENOENT, Errno::ESRCH end end end # after finishing processes after_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection end
nginxの設定
$ /etc/nginx/conf.d/アプリ名.conf
#log directory error_log /var/www/rails/アプリ名/log/nginx.error.log; access_log /var/www/rails/アプリ名/log/nginx.access.log; # max body size client_max_body_size 2G; upstream unicorn { # for UNIX domain socket setups server unix:/var/www/rails/アプリ名/tmp/sockets/.unicorn.sock fail_timeout=0; } server { listen 80; server_name ~~.~~~.~~~.~~ ; #(Elastic IP address) # nginx so increasing this is generally safe... keepalive_timeout 5; # path for static files # Location of our static files root /var/www/rails/アプリ名/public; location ~ ^/assets/ { root /var/www/rails/アプリ名/public; allow all; } # page cache loading try_files $uri/index.html $uri.html $uri @app; location @app { # HTTP headers proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if (!-f $request_filename) { proxy_pass http://unicorn; break; } } # Rails error pages error_page 500 502 503 504 /500.html; location = /500.html { root /var/www/rails/アプリ名/public; } }
以上、よろしくお願いします。
あなたの回答
tips
プレビュー