1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Railsのproduction.rbはどういう事が設定できるの?全ての設定を調べてみた!

Posted at

なぜ記事を書こうと思ったか

Railsのproduction.rbでどのような設定をしているか及びどのような設定ができるかを確認する為に調べたので、備忘録として残します。

production.rbのコマンド説明

  • config.cache_classes = true
    ソースコードをリロードしない。キャッシュが適用される。

  • config.eager_load
    Railsのapp以下にあるクラス(ModelやController)を起動時に全て読み込むかどうか設定

  • config.consider_all_requests_local
    すべてのエラーをブラウザに表示をするかの設定
    例:Routing Errorなど詳細なエラー情報が表示される。

  • config.action_controller.perform_caching
    アプリケーションのキャッシュの有無

  • config.require_master_key = true
    ENV["RAILS_MASTER_KEY"]環境変数またはconfig/master.keyファイルでマスターキーを取得できない場合はアプリを起動しないようにする。

  • config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
    public/ディレクトリ内の静的アセットを配信するかどうかを指定するかの設定。
    production環境ではアプリケーションを実行するNginxやApacheなどのサーバーが静的アセットを扱う必要があるので、falseに設定されます。

  • config.asset_host
    アセットを置くホストを設定
    アセットとは、Webアプリケーションの直接のレスポンス以外の構成要素のことを指します。Javascript、CSS、画像などがこれにあたります。

  • config.action_dispatch.x_sendfile_header = 'X-Sendfile'
    バックエンドで認証やログ記録などを処理し、Apacheにリダイレクトされた場所からエンドユーザーへのコンテンツの提供を処理させることができるため、バックエンドを解放して他のリクエストを処理できる。

  • config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
    バックエンドで認証やログ記録などを処理し、NGINXにリダイレクトされた場所からエンドユーザーへのコンテンツの提供を処理させることができるため、バックエンドを解放して他のリクエストを処理できる。

  • config.active_storage.service = :local
    config/storage.ymlで名前を宣言し、このオプションでファイルを保存する場所を指定

  • config.action_cable.mount_path = nil
    Action Cableをメインサーバープロセスの一部としてマウントする場所を文字列で指定します。デフォルト値は/cableです。nilを設定すると、Action Cableは通常のRailsサーバーの一部としてマウントされなくなります。
    ActionCableとは、Railsのアプリケーションと同様の記述で、WebSocket通信という双方向の通信によるリアルタイム更新機能を実装できるフレームワークで、Rails5から実装されました。利用することで、たとえばリアルタイムで更新されるチャット機能を実装することができます。

  • config.action_cable.url = 'wss://example.com/cable'
    Cableサーバを決めたら、ServerのURLをclientサイドに提供する必要がある。Action CableサーバーがホストされているURLを文字列で指定します。Action Cableサーバーがメインのアプリケーションと別になっている場合に使う可能性があります。View側に action_cable_meta_tag を書く。

  • config.action_cable.allowed_request_origins = [ 'http://example.com', /http://example.*/ ]
    指定されていない送信元からのリクエストを受け付けません。送信元リストは、配列の形でサーバー設定に渡します。送信元リストには文字列のインスタンスや正規表現を利用でき、これに対して一致するかどうかがチェックされます。

  • config.force_ssl = true
    すべてのリクエストをHTTPSプロトコル下で実行するよう強制し、URL生成でも"https://"をデフォルトのプロトコルに設定します。

  • config.log_level = :info
    Railsのログ出力をどのぐらい詳細にするかを指定します。
    ログレベル(順に必要度が低くなる):①unknown ⇨ ②fetal → ③error → ④warn → ⑤info → ⑥debug)
    ④を指定した場合、④⑤⑥のログが出力される。

  • config.log_tags = [ :request_id ]
    ログにタグ付けをする。
    今回の場合、ログの前に一意の値が出力される。

  • config.cache_store = :mem_cache_store
    Railsでのキャッシュ処理に使われるキャッシュストアを設定します。
    キャッシュの種類
    ①:memory_store → プロセス内のメモリ
    ②:file_store → ファイルシステム
    ③:mem_cache_store → Dangaのmemcachedサーバーに一元化
    ④:null_store → キャッシュをしない

  • config.active_job.queue_adapter = :resque
    キューのバックエンドに用いるアダプタを設定
    Resqueは、バックグラウンドジョブを作成し、それらのジョブを複数のキューに配置し、後で処理するためのRedisがサポートするライブラリ

  • config.active_job.queue_name_prefix = "app_production"
    キューの前にプレフィックスを付ける。
    プレフィックスとは、単語の先頭に付加して特定の意味を付け加える要素(接辞)のこと。

  • config.action_mailer.perform_caching = false
    メイラーのテンプレートでフラグメントキャッシュを有効にするかどうかを指定します。指定のない場合のデフォルト値はtrueです。
    フラグメントキャッシュとは、ページの一部分をキャッシュする機能。キャッシュされたデータはキャッシュストアに保存され、2回目以降はキャッシュストアからデータを取り出される。

  • config.action_mailer.raise_delivery_errors = true
    メール配信が完了しなかった場合にエラーを発生させるかどうかを指定

  • config.action_mailer.default_url_options
    Action MailerのビューでURLを生成する

  • ActionMailer::Base.smtp_settings
    ActionMailer経由の全てのメールがこのSMTP設定を用いて配信される

  • ActionMailer::Base.delivery_method
    配信方法の設定

  • config.i18n.fallbacks = true
    訳文がない場合のフォールバック動作を設定
    フォールバック動作とは、システムに障害が発生したときに性能を落としたり機能を制限したりして限定的ながら稼動を続行すること。あるいは、利用したい機能が条件が悪く使えない場合に、代替となる機能に切り替えること。また、そのような機能や構成。

  • config.active_support.deprecation = :notify
    非推奨警告メッセージの振る舞いを設定。どこにメッセージを出力するかを指定。

  • config.active_support.disallowed_deprecation = :log
    利用が許されない非推奨警告メッセージの振る舞いを設定します。すべてのログ行の前に次のタグを付けます。

  • config.active_support.disallowed_deprecation_warnings = []
    どの非推奨メッセージを禁止するかをアクティブサポートに伝えます。

  • config.log_formatter = ::Logger::Formatter.new
    Railsロガーのフォーマットを定義

  • config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
    Rails.loggerで使われるロガーやRails関連のあらゆるロガー(ActiveRecord::Base.loggerなど)を指定します。デフォルトでは、ActiveSupport::LoggerのインスタンスをラップするActiveSupport::TaggedLoggingのインスタンスが指定されます。

  • ActiveSupport::Logger.new(STDOUT)
    標準出力用の Logger オブジェクトを作成する。

  • config.active_record.dump_schema_after_migration = false
    マイグレーション実行時にスキーマダンプ(db/schema.rbまたはdb/structure.sql)を行なうかどうかを指定
    スキーマダンプとは、スキーマを抽出する。db/schema.rb の作成

最後に

 RailsガイドやRailsドキュメント、多くの方の記事によって設定できる内容は大方理解できたと思います。
 間違っている箇所やわからない箇所があれば、ぜひコメントしていただけると嬉しいです。
 読んで頂きありがとうございました。

参考資料

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?