やりたいこと
Nginxの設定ファイルを用いてメンテナンスページへリダイレクトさせて表示させたいです。
下記を参考にして設定をしてみました。
- http://qiita.com/semind/items/8f968be2cfa0ce85a13e
- http://qiita.com/kotaroito/items/8b7d4b8ad6935edcdba8
現状
httpへリクエストがあった時にhttpsへリダイレクトをnginxで下記を参考に行っております。
http://qiita.com/ichiki1023/items/baaf4d47083fb4a6396b
メンテナンスページがあることは確認できるのですが、
"リダイレクトが繰り返し行われました。"というエラーが出て、
ページが表示できません。
nginx設定(※一部抜粋)
http{ upstream my-backend{ server 127.0.0.1:9000; } server{ listen 80 default_server; ... # ここからメンテナンスページ設定 # setディレクティブでメンテナンスon/off用フラグ変数を設定 set $maintenance false; # /var/tmp/nginx/maintenanceがある場合はメンテモード if (-e /var/tmp/nginx/maintenance ) { set $maintenance true; } # メンテ時でもサイトを確認するためのワークアラウンド # 特定のアドレスからの場合は通常の状態の表示を許可 if ($remote_addr = XXX.XXX.XXX.XXX) { set $maintenance false; } # メンテナンスモードの場合は/maintenance.htmlにrewirteしつつ、rootディレクトリを書き換える # この場合だと/var/tmp/nginx/maintenance/maintenance.htmlがメンテナンス画面用ファイルになる # このような周りくどい設定にしているのは通常時にmaintenance.htmlを直アクセスで見れないようにするため。 if ($maintenance = true) { rewrite ^ /maintenance.html redirect; } # メンテナンスファイルの置き場を指定 location /maintenance.html { root /var/tmp/nginx/maintenance; # キャッシュさせないようにexpiresを0にしておく expires 0; } } location / { proxy_pass http://my-backend; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forworded_for; proxy_http_version 1.1; prosy_set_header Upgrade $http_upgrade; prosy_set_header Connection "upgrade"; } server{ listen 443 ssl; ... } }
リダイレクトはできているようなのですが、
passの設定等がよくなく、ページが表示されません。
Nginxに疎く全くわからないため、ご教授の程、宜しく御願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/17 14:38
2017/01/18 00:37 編集
2017/01/18 09:13
2017/01/18 09:43
2017/01/19 10:14
2017/01/19 10:14
2017/01/19 15:28
2017/01/20 02:05
2017/01/20 08:47