技術

【Rails】ActionController::InvalidAuthenticityToken (ELB,EC2)

投稿日:

どうも中田です。

また出ました。赤い画面。
日々いろんなサイトを見てますが、この画面を一番見てるんじゃないかって。
いっそのこと、このデザインで画面作ったら面白そうですね。
railsエンジニアは拒否反応を持ちつつサイトに訪れていただけることでしょう。

本題

さて、Railsの本番環境でこんなエラーが出ましたー。
ということでその解決策のお話。

今回のエラーは下記内容でした

HTTP Origin header (https://www.xxx.jp) didn't match request.base_url (http://www.xxx.jp)

プロトコルが違っちゃってますね
スキーマ違いでクロスサイトと判別されてるんすね
ちなみに、本番環境はAWSを使っていて

[ELB] -> [EC2(nginx -> rails)] -> [RDS]

って感じになってます。

ELBがSSL終端にしてるので、nginxにはHTTPでしか来ません。
なので…

解決方法

nginxの設定追加しました

  location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #これ追加
    proxy_set_header X-Forwarded-Proto https; #これ追加
    proxy_pass http://www.xxxx.com;
  }

多分、X-Forwarded-Protoの追加だけでいいけど、クライアントIPもわかった方がいいだろうって感じで X-Forwarded-For も入れてます。

-技術

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

[Rails]Deviceのfacebook認証でinvalid_credentials….

こんばんは Deviceでfacebook認証機能を作っていたらinvalid_ …

no image

【ionic】Cannot read property ‘startTrackerWithId’ of undefined だとよ

どうも中田です。 GoogleAnalyticsプラグインを導入したのですが、A …

no image

【ionic】$ionic emulate ios で真っ白

どうも、なかたです。 「COTeggのバケツ」というブログを立ち上げました。 こ …

no image

【Android/ionic】これさえやればOK!アプリ公開への道

どうも、中田です。 ionicでHTML5/CSSハイブリッドアプリ開発してるん …

no image

Macで簡単にIE環境を構築する手順

こんにちは、コーテッグの小山です。 今までちょろっとIE対応をやることはあったの …