RailsアプリケーションをVPSにデプロイしました。
https://edamame-chan.comでアクセスした場合のディレクトリの読み込みが上手くいかないようで「このページは動作していません」となってしまうのです。
Nginxの設定ファイルでの読み込みが上手くいかないのが原因だと思いますが
よくわかりません。
VPSの/usr/share/nginx/html/current以下を読み込んでくれなくて、このような状態になっているのだと思います。
VPSのファイル構成は以下のようになっています。
Nginxの設定ファイルは以下のようになっています。
/etc/nginx/conf.d/https.conf upstream app_server { server unix:/usr/share/nginx/html/current/tmp/sockets/.unicorn.sock fail_timeout=0; } map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 443 ssl http2; server_name edamame-chan.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { deny 212.64.88.231; deny 181.24.23.164; allow all; root /usr/share/nginx/html/current/public; #ここがおかしいのかも? index index.html index.htm; try_files $uri/index.html $uri.html $uri @app; } ssl_protocols TLSv1.2; ssl_ciphers EECDH+AESGCM:EECDH+AES; ssl_ecdh_curve prime256v1; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_certificate /etc/letsencrypt/live/edamame-chan.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/edamame-chan.com/privkey.pem; #error_page 500 502 503 504 /50x.html; #location = /50x.html { #root /usr/share/nginx/html; #} proxy_connect_timeout 130; proxy_read_timeout 130; proxy_send_timeout 130; client_max_body_size 2G; error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html/current/public; } error_page 500 502 504 /500.html; location = /500.html { root /usr/share/nginx/html/current/public; } location @app { deny 212.64.88.231; deny 181.24.23.164; allow all; proxy_set_header X-Forwarded-Proto $scheme; 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_redirect off; proxy_pass http://app_server; } set $maintenance false; if (-e /var/tmp/do_maintenance) { set $maintenance true; } if ($uri ~ "^/maintenance/") { set $maintenance false; } if ($remote_addr = 153.126.131.89) { set $maintenance false; } error_page 503 /maintenance/maintenance.html; location /maintenance/ { root /var/www; } if ($maintenance = true) { return 503; } }
unicornは以下のように設定しています。
config/unicorn/production.rb #ワーカーの数。後述 $worker = 2 #何秒経過すればワーカーを削除するのかを決める $timeout = 30 #自分のアプリケーション名、currentがつくことに注意。 $app_dir = "/usr/share/nginx/html/current" #リクエストを受け取るポート番号を指定。後述 $listen = File.expand_path 'tmp/sockets/.unicorn.sock', $app_dir $pid = File.expand_path 'tmp/pids/unicorn.pid', $app_dir #listen "/var/run/unicorn.sock" #pid "/var/run/unicorn.pid" #PIDの管理ファイルディレクトリi #$pid = File.expand_path 'tmp/pids/unicorn.pid', $app_dir #エラーログを吐き出すファイルのディレクトリ $std_log = File.expand_path 'log/unicorn.log', $app_dir $err_log = File.expand_path 'log/unicorn.log', $app_dir # 上記で設定したものが適応されるよう定義 worker_processes $worker working_directory $app_dir #stderr_path $std_log stderr_path $err_log stdout_path $std_log timeout $timeout listen $listen pid $pid #ホットデプロイをするかしないかを設定 preload_app true root = "/usr/share/nginx/html/current" before_exec do |server| ENV['BUNDLE_GEMFILE'] = "#{root}/Gemfile" end #fork前に行うことを定義。後述 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 sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU Process.kill :QUIT, File.read(old_pid).to_i rescue Errno::ENOENT, Errno::ESRCH end end end #fork後に行うことを定義。後述 after_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection end
そしてnginxの設定ファイルのlocationのrootを root /usr/share/nginx/html; と設定しアクセスすると
/usr/share/nginx/html/index.htmlを読み込み、表示してくれます。
なので、 nginxの設定ファイルの
root /usr/share/nginx/html/current/public; の部分がおかしいと思っていますが、解決出来ないのでご教授の程、宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。