質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。

Q&A

解決済

2回答

3304閲覧

デプロイは成功したのですが、アクセスすると502エラーが発生します

michikusa-mc

総合スコア27

Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。

1グッド

1クリップ

投稿2023/04/05 03:49

編集2023/04/06 07:00

実現したいこと

RailsプロジェクトをRenderサーバーにアップロードしました。
そのサーバーのURLにアクセスしたら、Railsプロジェクトが
表示されるようにしたいです。

前提

RailsプロジェクトをRender.comにデプロイしました。
しかし、そのサーバのURLにアクセスすると502エラー
または403エラーが発生します。

発生している問題・エラーメッセージ

一つ目・503エラー
イメージ説明
二つ目・403エラー
イメージ説明

Railsプロジェクトのコード

config/puma.rb

ruby

1# Puma can serve each request in a thread from an internal thread pool. 2# The `threads` method setting takes two numbers: a minimum and maximum. 3# Any libraries that use thread pools should be configured to match 4# the maximum value specified for Puma. Default is set to 5 threads for minimum 5# and maximum; this matches the default thread size of Active Record. 6# 7max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } 8min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count } 9threads min_threads_count, max_threads_count 10 11# Specifies the `worker_timeout` threshold that Puma will use to wait before 12# terminating a worker in development environments. 13# 14worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development" 15 16# Specifies the `port` that Puma will listen on to receive requests; default is 3000. 17# 18port ENV.fetch("PORT") { 3000 } 19 20# Specifies the `environment` that Puma will run in. 21# 22environment ENV.fetch("RAILS_ENV") { "development" } 23 24# Specifies the `pidfile` that Puma will use. 25pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" } 26 27# Specifies the number of `workers` to boot in clustered mode. 28# Workers are forked web server processes. If using threads and workers together 29# the concurrency of the application would be max `threads` * `workers`. 30# Workers do not work on JRuby or Windows (both of which do not support 31# processes). 32# 33# workers ENV.fetch("WEB_CONCURRENCY") { 2 } 34 35# Use the `preload_app!` method when specifying a `workers` number. 36# This directive tells Puma to first boot the application and load code 37# before forking the application. This takes advantage of Copy On Write 38# process behavior so workers use less memory. 39# 40preload_app! 41 42# Allow puma to be restarted by `bin/rails restart` command. 43plugin :tmp_restart 44

config/environments/production.rb

ruby

1require "active_support/core_ext/integer/time" 2 3Rails.application.configure do 4 # Settings specified here will take precedence over those in config/application.rb. 5 6 # Code is not reloaded between requests. 7 config.cache_classes = true 8 9 # Eager load code on boot. This eager loads most of Rails and 10 # your application in memory, allowing both threaded web servers 11 # and those relying on copy on write to perform better. 12 # Rake tasks automatically ignore this option for performance. 13 config.eager_load = true 14 15 # Full error reports are disabled and caching is turned on. 16 config.consider_all_requests_local = false 17 config.action_controller.perform_caching = true 18 19 # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] 20 # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). 21 # config.require_master_key = true 22 23 # Disable serving static files from the `/public` folder by default since 24 # Apache or NGINX already handles this. 25 config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present? 26 27 # Compress CSS using a preprocessor. 28 # config.assets.css_compressor = :sass 29 30 # Do not fallback to assets pipeline if a precompiled asset is missed. 31 config.assets.compile = false 32 33 # Enable serving of images, stylesheets, and JavaScripts from an asset server. 34 # config.asset_host = "http://assets.example.com" 35 36 # Specifies the header that your server uses for sending files. 37 # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache 38 # config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX 39 40 # Store uploaded files on the local file system (see config/storage.yml for options). 41 config.active_storage.service = :local 42 43 # Mount Action Cable outside main process or domain. 44 # config.action_cable.mount_path = nil 45 # config.action_cable.url = "wss://example.com/cable" 46 # config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ] 47 48 # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. 49 # config.force_ssl = true 50 51 # Include generic and useful information about system operation, but avoid logging too much 52 # information to avoid inadvertent exposure of personally identifiable information (PII). 53 config.log_level = :info 54 55 # Prepend all log lines with the following tags. 56 config.log_tags = [ :request_id ] 57 58 # Use a different cache store in production. 59 # config.cache_store = :mem_cache_store 60 61 # Use a real queuing backend for Active Job (and separate queues per environment). 62 # config.active_job.queue_adapter = :resque 63 # config.active_job.queue_name_prefix = "sns_production" 64 65 config.action_mailer.perform_caching = false 66 67 # Ignore bad email addresses and do not raise email delivery errors. 68 # Set this to true and configure the email server for immediate delivery to raise delivery errors. 69 # config.action_mailer.raise_delivery_errors = false 70 71 # Enable locale fallbacks for I18n (makes lookups for any locale fall back to 72 # the I18n.default_locale when a translation cannot be found). 73 config.i18n.fallbacks = true 74 75 # Don't log any deprecations. 76 config.active_support.report_deprecations = false 77 78 # Use default logging formatter so that PID and timestamp are not suppressed. 79 config.log_formatter = ::Logger::Formatter.new 80 81 # Use a different logger for distributed setups. 82 # require "syslog/logger" 83 # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new "app-name") 84 85 if ENV["RAILS_LOG_TO_STDOUT"].present? 86 logger = ActiveSupport::Logger.new(STDOUT) 87 logger.formatter = config.log_formatter 88 config.logger = ActiveSupport::TaggedLogging.new(logger) 89 end 90 91 # Do not dump schema after migrations. 92 config.active_record.dump_schema_after_migration = false 93 94 config.exceptions_app = self.routes 95 96end 97

bin/render-build.sh

sh

1set -o errexit 2 3bundle install 4yarn install 5yarn build 6bundle exec rake assets:precompile 7bundle exec ridgepole -c config/database.yml -E production --apply -f db/schemas/Schemafile

render.yaml

yaml

1databases: 2 - name: ChisanChishou 3 databaseName: rails7_sample_staging 4 user: michikusamichiya 5 region: singapore 6 7services: 8 - type: web 9 name: rails7-sample-staging 10 env: ruby 11 region: singapore 12 plan: free 13 buildCommand: "./bin/render-build.sh" 14 startCommand: "bundle exec puma -C config/puma.rb" 15 envVars: 16 - key: DATABASE_URL 17 fromDatabase: 18 name: rails7_sample_staging 19 property: connectionString 20 - key: RAILS_MASTER_KEY 21 sync: false

試したこと

  • リスト別ブラウザでのアクセス(Microsoft Edge、Google Chrome Mozilla Firefox)
  • サーバー再起動
  • pushし直し

補足情報(FW/ツールのバージョンなど)

環境は以下の通りです。

  • Ruby 3.1.3
  • Rails 7.0.4
  • サーバー Render
  • gitリポジトリ github
  • SQL sqlite3

あともう少し、というところでエラーになっています。
本当に困っています。
ご回答宜しくお願い致します。

shinoharat👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shinoharat

2023/04/05 08:23

config/puma.rb config/environments/production.rb bin/render-build.sh render.yaml を質問文に追加してください。
shinoharat

2023/04/05 09:30

production.rb の config.public_file_server.enabled に true を設定すると、表示が変わったりしますか?
michikusa-mc

2023/04/05 10:39

ありがとうございます。申し訳ありませんが、ここからは回答欄でお願いしてもよろしいでしょうか?
guest

回答2

0

自己解決

config/environments/production.rb

ruby

1config.hosts = "(URL)" #これを追加

を追記すればできました!!!
回答して下さった方々、本当にありがとうございました!!!!!

投稿2023/04/06 12:43

michikusa-mc

総合スコア27

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

502 の方は、デプロイ直後にアクセスしたことによるエラーに見えますので、再発しないなら気にしなくて良いと思います。

403 の方は、あまり自信はないのですが、もしかしたら public 配下のリソースにアクセスできないことによるエラーかもしれません。
試しに production.rb の設定を変更してみてください。

diff

1- config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present? 2+ config.public_file_server.enabled = true

投稿2023/04/05 12:00

shinoharat

総合スコア1685

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

michikusa-mc

2023/04/06 02:08

ありがとうございます。しかし、駄目でした... 403がまだ出ます。
shinoharat

2023/04/06 02:32

Rails が出している 403 エラーなのか、それ以外が出しているエラーなのか判別したいですね。 表示されている 403 は自作されたページですか? それとも、作った覚えのないページですか?
shinoharat

2023/04/06 04:05

ブラウザの 403 ではなく、 rails の public/500.html が出るようになったので、 production.log を見れば原因解決に近づくと思います。 すみませんが、どのようなエラーが出ているか確認して、質問文に追加していただけませんか?
michikusa-mc

2023/04/06 06:13

大変申し訳ありません。production.logがないらしいです...
shinoharat

2023/04/06 06:24

ダッシュボードの Shell から log フォルダを確認したら見つかりませんか?
michikusa-mc

2023/04/06 06:57

すみません、Shellは無料プランだとサポートされていないらしいです。教えて下さったのに、申し訳ありません。
michikusa-mc

2023/04/06 07:25

ありがとうございます。 しかしすみません、ssh (サービス名)@ssh.singapore.render.comと打っても、(サービス名)@ssh.singapore.render.com: Permission denied (publickey).と出てしまいますね...あと、「Connect」欄から「SSH」を見ても、「To make SSH available, upgrade your service to a paid instance type.」と出てるのでコマンド取得もダメそうです。やっぱり有料プランにした方が早いですかね?
shinoharat

2023/04/06 08:12

学習用やポートフォリオなら話は別ですが、ちゃんとしたサービスとしてリリースするなら、ログ等が見れないのは余りにも辛いので、有料プランを検討された方が良いかもしれませんね。 一応、prodcution.rb の「config.consider_all_requests_local」を「true」に変えることで、ブラウザ上にエラーの詳細を表示されることが可能です。 ただし、攻撃者にヒントを与える可能性もあるため、セキュリティ上のリスクがあります。 万が一問題が起きても私は責任取れませんが、見られて困るデータが入ってないなら、そういう方法もなくはないです。。。
michikusa-mc

2023/04/06 08:22

ありがとうございます。有料プラン検討してみます。。。ところで、一時的にだけ有料にする、ということは、できますか?
michikusa-mc

2023/04/06 08:37

あと、config.consider_all_requests_localをtrueに一時的にしてみると、Blockd host: (アプリ名).onrender.com To allow requests to (アプリ名).onrender.com make sure it is a valid hostname (containing only numbers, letters, dashes and dots), then add the following to your environment configuration:となりました。
michikusa-mc

2023/04/06 12:43

ありがとうございました!!!production.rbにconfig.hosts = "(URL)"と追記すれば、できました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問