技術

【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

document.querySelectorで色々なDOMを取得する

こんにちは javascriptでDOMを取得することは結構あるかと思います。 …

no image

【rails】websocket-rails動きません!

どうも中田です。 巷ではrailsでwebsocketを動かすのは簡単♪簡単♪っ …

fullpage.jsでコンテンツを画面幅いっぱいでスクロールさせる。

fullpage.jsとは fullpage.jsは一つのコンテンツを画面いっぱ …

no image

[wordpress]パーミションを変えたらHTTP500(Internal Server Error)

こんばんは Kusanagiにインストールしたwordpressの管理画面からフ …

[Rails] TinyTds::Error (closed connection)

どうも中田です。 たぶん、この記事で救われるエンジニアの方はおそらく1人いればよ …