概要
Railsを本番環境にデプロイしたら、以下のエラーが発生。
HTTP Origin header didn’t match request.base_url
原因
リバースプロキシに使用していたNginxの設定にミスがあった。
解決策
nginxの設定を以下のようにする。
server {
listen unix:/var/run/app.sock;
server_name app-name.com;
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_set_header X-Forwarded-Host $host;
proxy_set_header X_FORWARDED_SSL on; # この行が必要だった
proxy_set_header X-Forwarded-Server $host;
location / {
proxy_pass http://web:3000/;
}
}
他のブログでは proxy_set_header X-Forwarded-Proto $scheme;
が必要だと書いてあったが、 proxy_set_header X_FORWARDED_SSL on;
の行も必要だった。
Comments