技術

【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

【ionic】リリースする!ちょっとその前に(version指定)

どうも、中田です。 ionic便利ですよね。 コマンド一つでマルチプラットフォー …

no image

[Angular] router-outletの外で現在のurlを取得

こんにちは、コーテッグのこやまです。 Angularでapp.component …

[Angular] @NgModuleをざっくりと

どうも中田です。 最近社内でAngularの波が起こってるので そのビッグウェー …

no image

【ionic】FBログイン時にSafari認証になってしまう

どうも中田です。 ionicでFacebookログインを実装した時に、 Nati …

no image

【Rails】productionモードでCSSの画像が表示されない

どうも中田です。 css内で画像を設定して、productionモードで動かすと …