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

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

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

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

Q&A

解決済

1回答

3831閲覧

リダイレクトループ(ERR_TOO_MANY_REDIRECTS)の解決方法を教えていただけないでしょうか?

koume

総合スコア458

nginx

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

0グッド

1クリップ

投稿2019/05/13 03:26

編集2019/05/13 06:14

Capistrano3+Rails5+Nginx+unicornでデプロイしました。
サイトにアクセスすると以下のエラーページが表示されます。

このページは動作していません XXXXXX-XXXX.com でリダイレクトが繰り返し行われました。 Cookie を消去してみてください. ERR_TOO_MANY_REDIRECTS

指示通りにCookieを消去してみましたが解決出来ませんでした。
そこでRedirect Checker tool なるものでチェックしてみました。

Result https://XXXXXX-XXXX.com 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently https://XXXXXX-XXXX.com/ 301 Moved Permanently

リダイレクトが何回も行われていました。原因は特定されましたが解決方法がわかりません。
たぶんデプロイのトライ&エラーを繰り返し、Nginxの設定ファイルをいじっているうちにリダイレクトループを繰り返す設定にしてしまっているのかもしれませんがよくわかりません。
Nginxのコードは以下になります。

/eyc/nginx/conf.d/https.conf upstream app_server { server unix:/usr/share/nginx/html/current/tmp/sockets/.unicorn.sock; } map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 443 ssl http2; server_name wonder-gate.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { deny 212.64.88.231; allow all; root /usr/share/nginx/html/current/public; index index.html index.htm; try_files $uri/index.html $uri @app; } ssl_protocols TLSv1.2; ssl_ciphers EECDH+AESGCM:EECDH+AES; ssl_ecdh_curve prime256v1; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_certificate /etc/letsencrypt/live/wonder-gate.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/wonder-gate.com/privkey.pem; #error_page 500 502 504 /50x.html; #location = /50x.html { #root /usr/share/nginx/html; #} proxy_connect_timeout 130; proxy_read_timeout 130; proxy_send_timeout 130; client_max_body_size 2G; error_page 404 /404.html; error_page 500 502 504 /500.html; location @app { deny 212.64.88.231; allow all; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://app_server; } set $maintenance false; if (-e /var/tmp/do_maintenance) { set $maintenance true; } if ($uri ~ "^/maintenance/") { set $maintenance false; } if ($remote_addr = XXX.XXX.XXX.XX) { set $maintenance false; } error_page 503 /maintenance/maintenance.html; location /maintenance/ { root /var/www; } if ($maintenance = true) { return 503; } }
/etc/nginx/conf.d/default.conf map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; server_name localhost; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { deny 212.64.88.231; allow all; root /usr/share/nginx/html/current/public; index index.html index.htm; try_files $uri/index.html $uri @app; } location @app { deny 212.64.88.231; allow all; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://app_server; } set $maintenance false; if (-e /var/tmp/do_maintenance) { set $maintenance true; } if ($uri ~ "^/maintenance/") { set $maintenance false; } if ($remote_addr = XXX.XXX.XXX.XX) { set $maintenance false; } error_page 503 /maintenance/maintenance.html; location /maintenance/ { root /var/www; } if ($maintenance = true) { return 503; } }

以下の設定あたりがおかしいのでしょうか?

upstream app_server { server unix:/usr/share/nginx/html/current/tmp/sockets/.unicorn.sock; } location / { deny 212.64.88.231; allow all; root /usr/share/nginx/html/current/public; index index.html index.htm; try_files $uri/index.html $uri @app; } location @app { deny 212.64.88.231; allow all; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://app_server; }

どなたか解決方法おしえていただけませんでしょうか?宜しくお願いします。

追記
やってみたこと
try_files $uri/index.html $uri @app;の記述位置を変更してアクセスしてみました。

location / { deny 212.64.88.231; allow all; root /usr/share/nginx/html/current/public; index index.html index.htm; #try_files $uri/index.html $uri.html $uri @app; } client_max_body_size 2G; error_page 404 /404.html; error_page 500 502 504 /500.html; try_files $uri/index.html $uri.html $uri @app;

上のようにlocation /内のtry_filesをコメントアウトし別の場所に記述しました。
すると403 Forbiddenが表示されます。
エラーの内容が変わった所をみるとこのtry_filesの記述がおかしいのかと思います。
いずれにしろ解決方法は不明のままですが・・・

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

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

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

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

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

guest

回答1

0

自己解決

根本的なことは何も変化はありませんが、いろいろ設定を変更してアクセスしてみて状況が変わりましたのでこの質問ページは終了し改めて質問いたします。

わかったこと
location内にtry_filesを記述するとERR_TOO_MANY_REDIRECTSが発生し
server { 内に記述すると403Forbiddenが発生します。

投稿2019/05/13 08:20

koume

総合スコア458

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問