質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

0回答

1358閲覧

本番環境でpostメソッド実行時のクロスサイト認定されるエラーを解決したい

ik_ko

総合スコア9

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2021/04/11 01:55

編集2021/04/12 01:14

ご質問失礼します。 
本番環境での記事投稿時にエラーが発生し、解決できずにいる状況ですのでご教授していただきたいです。
#環境
開発環境
ruby 2.6.5
rails 6.0.3
mysql 8.0.2
docker
docker-compose
本番環境
webサーバー nginx
アプリケーションサーバー puma
AWS VPC/EC2/RDS/ALB/S3/ACM/Route53
#聞きたいこと
本番環境でのpostメソッド実行時に起きる
クロスサイト認定されるエラー解決したい

HTTP Origin header (https://sdf-app-portforio.com) didn't match request.base_url (http://sdf-app-portforio.com)

#エラー発生状況
本番環境へ変更点を反映させるためデプロイを行った後,アプリケーションへアクセス後、記事の投稿ボタンを押すとエラーが発生しました。
変更点はpost周りの変更を行っておりません。
それ以前までしっかりと投稿できていました。
#エラーコード

Parameters: {"authenticity_token"=>"HkmUSYSIiNngo6PqXumA30mT8thVLJ6QAG/mCn5NyCF/2UnQqUfg2kH9s0ptjGMiLYbPIzRbLsKP+J3kGCVaNg==", "article"=>{"image"=>#<ActionDispatch::Http::UploadedFile:0x00007f4e44a27a58 @tempfile=#<Tempfile:/tmp/RackMultipart20210411-27818-183ny7d.jpg>, @original_filename="C704-01.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"article[image]\"; filename=\"C704-01.jpg\"\r\nContent-Type: image/jpeg\r\n">, "object"=>"手袋", "price"=>"8000円", "store"=>"札幌駐屯地", "category_id"=>"81", "tag_ids"=>["", "186", "187", "188"], "rate"=>"3", "content"=>"薄手なので軽作業する時に使えると思います"}, "commit"=>"投稿する"} W, [2021-04-11T01:04:02.901492 #27818] WARN -- : [013cb256-14f3-4c82-a2c2-22e73db9d173] HTTP Origin header (https://sdf-app-portforio.com) didn't match request.base_url (http://sdf-app-portforio.com) I, [2021-04-11T01:04:02.901801 #27818] INFO -- : [013cb256-14f3-4c82-a2c2-22e73db9d173] Completed 422 Unprocessable Entity in 0ms (ActiveRecord: 0.0ms | Allocations: 165) F, [2021-04-11T01:04:02.902462 #27818] FATAL -- : [013cb256-14f3-4c82-a2c2-22e73db9d173] [013cb256-14f3-4c82-a2c2-22e73db9d173] ActionController::InvalidAut henticityToken (ActionController::InvalidAuthenticityToken):

#試したこと、調べたところ
以下の記事で
リンク内容
リンク内容

エラーの原因は
ELBまではhttpsアクセス
ELBとnginxはhttpアクセスになっている。
ユーザーがアクセスするのはhttpsなのにrailsアプリ側にはhttpでアクセスしていると
情報が伝わってしまい、ここで矛盾が生じるためクロスサイト認定され
エラーが起きてしまっていると理解しました。
その上で
EC2にssh接続を行い、nginx.confを以下のように書き換えましたがエラーが解決できずにいる状況です
/etc/nginx/nginx.conf

# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 4096; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html; #以下追加 location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_pass http://sdf-app-portforio.com; }  #ここまで    # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } # Settings for a TLS enabled server. # # server { # listen 443 ssl http2; # listen [::]:443 ssl http2; # server_name _; # root /usr/share/nginx/html; # # ssl_certificate "/etc/pki/nginx/server.crt"; # ssl_certificate_key "/etc/pki/nginx/private/server.key"; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 10m; # ssl_ciphers PROFILE=SYSTEM; # ssl_prefer_server_ciphers on; # # # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # # error_page 404 /404.html; # location = /40x.html { # } # # error_page 500 502 503 504 /50x.html; # location = /50x.html { # } # } }

と記述し

sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
sudo service nginx restart

を行い、nginx.confの記述のミスなどはないことを確認しました。
ですが、エラーが解決できていない状態です
お忙しいと思いますがご教授していただきたいです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/04/12 00:58

proxy_set_header X-Forwarded-For の後ろの z が謎ですね…。
ik_ko

2021/04/12 01:15

すみません。 zは質問作成している時に間違って打ってしまったものでした。 すみません サーバー上のファイルには記載されておりません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問