railsアプリを公開するため、レンタルサーバー上で準備をしていた際、上記エラーになってハマりました。
原因はよくわかりませんが、対策がわかりましたので、備忘録として残しておきます。
前提
rails + unicorn + nginx でアプリを構築しています。
ローカルでのテストでは通常終了するも、本番環境で動かすと表題のエラーになる。
「select」ではエラーなし。「insert」「update」「delete」でエラー。
経緯
テスト稼働中でもあり「https」化をおこないました。
原因
いろいろな記事にありましたが、読んでもさっぱりわかりませんでした。すみません。
対策
「/etc/nginx/conf.d/default.conf」
の設定に、「proxy_set_header X-Forwarded-Proto $scheme;」の一文を付け加えます。
「/etc/nginx/conf.d/*****.conf」
*****の部分は、アプリで変更していればそのファイルを変更してください。
server {
listen 443;
server_name ci.example.com ;
(略)
location / {
(略)
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Client-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme; ← この設定を追加
proxy_redirect off;
proxy_pass http://puma;
}
まとめ
ハマると二日三日は平気で進まなくなってしまうので、自分用に備忘録として残しておきます。
コメント