【Rails】 RailsでBasic認証を設定する

Rails 側で設定する場合

# app/controllers/application_controller.rb

class ApplicationController < ActionController::Base

  before_action :basic_authentication if Rails.env.production?

  private

  def basic_authentication
    authenticate_or_request_with_http_basic do |user, password|
      user == [ユーザー名] && password == [パスワード]
    end
  end

end

Nginx 側で設定する場合

htpasswdファイルを生成する

$ sudo htpasswd -cb /etc/nginx/.htpasswd [ユーザー名] [パスワード]

Nginx に設定する

# /etc/nginx/nginx.conf

server {
  ...
  # Basic Authentication
  auth_basic 'Restricted';
  auth_basic_user_file  '/etc/nginx/.htpasswd';
  ...
}

再起動する

$ sudo service nginx restart