前提・実現したいこと
EC2でデプロイ後hppts通信とするために、お名前.comでドメインを取得
Certificate Managerで証明書を発行し、route53でAタイプのエイリアスを「はい」に設定
ブラウザで確認すると「503 Service Temporarily Unavailable」と表示
ログを確認すると「cat unicorn.stderr.log」で下記のエラーが発生している
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (13) (ActiveRecord::ConnectionNotEstablished)
上記を解決したら503のエラーも解決できるか不明ですが、まずはこれを解決したいと考えております。
環境
Ruby on Rails
capistrano
EC2
Route53
Mariadb
※ローカルはMySQL
mariadbインストールの際に下記コマンドを実行
sudo yum -y install mariadb-server mysql-devel
config/database.yml
コメントアウト以外の部分を記載 ※省略 default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: socket: /tmp/mysql.sock development: <<: *default database: assistance_company_development ※省略 test: <<: *default database: assistance_company_test ※省略 production: <<: *default database: assistance_company_production username: root password: <%= ENV['DATABASE_PASSWORD'] %> socket: /var/lib/mysql/mysql.sock
cat.production.log
Started GET "/" for 58.12.189.162 at 2021-05-11 11:55:59 +0000 Processing by PostsController#index as HTML Filter chain halted as :basic_auth rendered or redirected Completed 401 Unauthorized in 5ms (Allocations: 294)
config/deploy/production.rb
server 'Elastic IP', user: 'ec2-user', roles: %w{app db web}
試したこと
【仮説1】
原因として、mysql.sockへのアクセス権限がmysqlであることが問題
【検証1】
下記コマンドを実行
sudo chmod 777 /var/lib/mysql/mysql.sock
コマンドは通ったが、エラー文等なにもかわらず
【仮説1】
httpsに変更または、ドメインを変更したときは、また別の設定が必要
→ネットで調べてみたがわからず
補足情報
プログラミング初心者で、これがAWSで初めてのデプロイとなります。
そのため、AWSの基本的な知識が足りてないだけの可能性等も考えられます。
不足する、コード等ありましたらお申し付けください。
以上、よろしくお願いします。
【追記】cat unicorn.stderr.log
unlinking existing socket=/var/www/assistance_company/tmp/sockets/unicorn.sock listening on addr=/var/www/assistance_company/tmp/sockets/unicorn.sock fd=17 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (13) (ActiveRecord::ConnectionNotEstablished)
【追記】/etc/nginx/conf.d/rails.conf
upstream app_server { # Unicornと連携させるための設定 server unix:/var/www/assistance_company/shared/tmp/sockets/unicorn.sock; } # {}で囲った部分をブロックと呼ぶ。サーバの設定ができる server { # このプログラムが接続を受け付けるポート番号 listen 443; # 接続を受け付けるリクエストURL ここに書いていないURLではアクセスできない server_name www.assistance-company.com; if ($http_x_forwarded_proto = 'http'){ return 301 https://$host$request_uri; } # クライアントからアップロードされてくるファイルの容量の上限を2ギガに設定。デフォルトは1メガなので大きめにしておく client_max_body_size 2g; # 接続が来た際のrootディレクトリ root /var/www/assistance_company/current/public; # assetsファイル(CSSやJavaScriptのファイルなど)にアクセスが来た際に適用される設定 location ^~ /assets/ { gzip_static on; expires max; add_header Cache-Control public; root /var/www/assistance_company/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;
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/21 03:30
2021/05/21 04:02
2021/05/21 09:24
2021/05/21 09:40
2021/05/23 08:31
2021/05/23 09:00
2021/05/24 02:46
2021/05/24 03:45
2021/05/24 05:25