apt-get upgrade 後「504 Gateway Time-out」エラーが出る


多くの基本的な事を理解せず、見まね物まねでruby on rails
でアプリケーションを作り、ubuntuで自宅サーバーを立て、Nginxでウエブに公開している者です。

ずっと問題なく一応アプリは稼働していたのですが、昨日(1/17) 急にエラーメッセージ に「504 Gateway Time-
out」が出てきてネットからアクセス不可能になりました。

`apt-get update ; apt-get upgrade`を実行した後このメッセージが出始めました。今までずっと`apt-get update ;
apt-get upgrade`は問題なくできていました。

【ubuntu環境】

[code]

    root@****:~# cat /etc/lsb-release
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=16.04
    DISTRIB_CODENAME=xenial
    DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
    
[/code]

【nginxエラーログ】

[code]

    /var/log/nginx/error.log
    
    018/01/18 17:31:56 [error] 1236#1236: *20 upstream timed out (110: Connection timed out) while reading response header from upstream
    , client: 192.168.210.4, server: 192.168.210.150, request: "GET /favicon.ico HTTP/1.1", upstream: "http://unix:/home/nagao/run/app_nagao2.
    
[/code]

【nginxバージョン】

[code]

    root@****:~# nginx -V
    nginx version: nginx/1.10.3 (Ubuntu)
    
[/code]

【nginx設定】  
/etc/nginx/conf.d/app_nagao2.conf

[code]

    upstream app_nagao2 {
        server unix:/home/nagao/run/app_nagao2.sock fail_timeout=0;
    }
    
    server {
        listen 80;
        server_name 192.168.210.150;
    
        root /home/nagao/run/app_nagao2/public; # アプリケーション名を記述
    
        try_files $uri/index.html $uri @app_nagao2; # アプリケーション名を記述
    
        location /{
            proxy_pass http://app_nagao2; # アプリケーション名を記述
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
        }
    
        error_page 500 502 503 504 /500.html;
        client_max_body_size 4G;
        keepalive_timeout 10;
    }
    
[/code]

ruby on rails は問題なく動いているようでエラーログも出ていません。  
何か問題があるようでしたら教えてください(明日から3日ぐらいアクセスできません)。

【追加部分】  
遅れて申し訳ありません。  
一応自分でテストできた事は下記です。

ファイル：/etc/nginx/nginx.confの中を下記の様に一部変更しました。

[code]

       include /etc/nginx/sites-enabled/*;
    #  include /etc/nginx/conf.d/*.conf;=>コメントアウトしたのですがうまく表示されません。
    
[/code]

これはユーザー設定ファイル(/etc/nginx/conf.d/app_nagao2.conf)を読ませないと言うことです。  
結果は「Welcome to Nginx」なので
take88さんが言われているようにNginxには問題無いのではないかと思います。通常は反対で(include /etc/nginx/sites-
enabled/*;)行をコメントアウトしています。

次に下記ファイル(~/bin/run_app_nagao.sh)のpumaの引数 -d
を取り除いて対話形式で`run_app_nagao.sh`を実行したところ、pumaのバージョンが低いようなメッセージがでました(すみません、ログは取っていません)。  
pumaのバージョンを上げて(3.11.?=>忘れました)app_nagao2のvendor以下のファイルを削除して`bunndle install
--path vendor/bundle`で実行したところ、今度はわけのわからないほどエラーでました。(すみません、これもログを取っていません。)  
それで`gem update`を実行してpumaのバージョンは最新のものだけにして`bundle
install`して実行しましたがやはりエラーわんさかです。エラーログ、必要ありそうなファイルを下記に挙げました。これで何かわかるでしょうか？  
ちなみにdevelopment環境(rails s -b 0.0.0.0)では正常に稼働しているように見えます。

* * *
[code]

    xxxx@yyyyy:~/bin$ ./run_app_nagao.sh
    [1563] Puma starting in cluster mode...
    [1563] * Version 3.11.2 (ruby 2.4.1-p111), codename: Love Song
    [1563] * Min threads: 8, max threads: 8
    [1563] * Environment: production
    [1563] * Process workers: 8
    [1563] * Phased restart available
    [1563] * Listening on unix:///home/nagao/run/app_nagao2.sock
    [1563] Use Ctrl-C to stop
    [1593] + Gemfile in context: /home/nagao/run/app_nagao2/Gemfile
    [1597] + Gemfile in context: /home/nagao/run/app_nagao2/Gemfile
    [1601] + Gemfile in context: /home/nagao/run/app_nagao2/Gemfile
    [1607] + Gemfile in context: /home/nagao/run/app_nagao2/Gemfile
    [1605] + Gemfile in context: /home/nagao/run/app_nagao2/Gemfile
    [1613] + Gemfile in context: /home/nagao/run/app_nagao2/Gemfile
    [1617] + Gemfile in context: /home/nagao/run/app_nagao2/Gemfile
    [1621] + Gemfile in context: /home/nagao/run/app_nagao2/Gemfile
    /home/nagao/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.16.1/lib/bundler/runtime.rb:313:in `check_for_activated_spec!': /home/nagao/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.16.1/lib/bundler/runtime.rb:313:in `check_for_activated_spec!': You have already activated puma 3.11.2, but your Gemfile requires puma 3.7.1. Prepending `bundle exec` to your command may solve this. (Gem::LoadError)
            from /home/nagao/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.16.1/lib/bundler/runtime.rb:31:in `block in setup'
            from /home/nagao/.rbenv/versions/2.4.1/lib/ruby/2.4.0/forwardable.rb:229:in `each'
            from /home/nagao/.rbenv/versions/2.4.1/lib/ruby/2.4.0/forwardable.rb:229:in `each'
    
[/code]

* * *

(~/bin/run_app_nagao.sh)

[code]

    #!/bin/sh
      cd /home/nagao/run/app_nagao2
    
    rails assets:precompile RAILS_ENV=production
    APP_NAGAO2_DATABASE_PASSWORD=******* SECRET_KEY_BASE=$(rails secret) RAILS_SERVE_STATIC_FILES=true \
    RAILS_ENV=production puma  -w 8
    
[/code]

* * *

(~/rails-data/app_nagao2/Gemfile)抜粋

[code]

    .
    .
    ruby '2.4.1'
    gem 'rails', '~> 5.0.1'
    gem 'puma', '~> 3.7.0'
    ------------------------------------------------------
    (~/rails-data/app_nagao2/config/puma.rb)
    _proj_path = "#{File.expand_path("../..", __FILE__)}"
    _proj_name = File.basename(_proj_path)
    _home = ENV.fetch("HOME") { "/home/nagao" }
    
    pidfile "#{_home}/run/#{_proj_name}.pid"
    bind "unix://#{_home}/run/#{_proj_name}.sock"
    directory _proj_path
    
    
    threads_count = ENV.fetch("RAILS_MAX_THREADS") { 8 }.to_i
    threads threads_count, threads_count
    
    # Specifies the `port` that Puma will listen on to receive requests, default is 3000.
    #
    _environment_ = ENV.fetch("RAILS_ENV") { "development" }
    if _environment_ == "development"
      port        ENV.fetch("PORT") { 3000 }
    end
    plugin :tmp_restart
    
[/code]

* * *
[code]

    xxxx@yyyy:~/rails-data/app_nagao2$ gem list | grep puma
    
[/code]

##  puma (3.11.2)

(rubyバージョン)  
xxxx@yyyy:~$ ruby -v

## ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]

(railsバージョン)  
xxxx@yyyy:~$ rails -v

## Rails 5.1.4

(gemバージョン)  
xxxx@yyyy:~$ gem -v

## 2.7.4




改良の余地はありそうですが,いろいろやってみた結果  
一応下記で正常にアプリは動いているようです。  
どうもありがとうございました。

[code]

    #!/bin/sh
    APP_NAME=app_nagao2
    USER=xxxxx
    RAILS_ENV=production
    
    cd /home/$USER/run/$APP_NAME
    
    rails assets:precompile RAILS_ENV=$RAILS_ENV
    APP_NAGAO2_DATABASE_PASSWORD=***** SECRET_KEY_BASE=$(rails secret) RAILS_SERVE_STATIC_FILES=true \
    RAILS_ENV=$APP_NAME bundle exec puma -d -e production -C config/puma.rb
    
[/code]




改良の余地はありそうですが,いろいろやってみた結果  
一応下記で正常にアプリは動いているようです。  
どうもありがとうございました。

[code]

    #!/bin/sh
    APP_NAME=app_nagao2
    USER=xxxxx
    RAILS_ENV=production
    
    cd /home/$USER/run/$APP_NAME
    
    rails assets:precompile RAILS_ENV=$RAILS_ENV
    APP_NAGAO2_DATABASE_PASSWORD=***** SECRET_KEY_BASE=$(rails secret) RAILS_SERVE_STATIC_FILES=true \
    RAILS_ENV=$APP_NAME bundle exec puma -d -e production -C config/puma.rb
    
[/code]

