RADL ひよっこエンジニアの備忘録 2年目 奮闘記
reddit.epicplugins.com 
want to join? in seconds

Nginx リダイレクト 設定

Nginxのリダイレクト設定で詰まったので備忘録として残します。

会社の業務で、通常とは違うやり方でサーバーのメンテナンスを行わなければならなくなり
(サービスの仕様上?開発者側のわがまま?)めちゃくちゃ詰まりました。

要件①
 あらゆるアクセスを他のサーバーへリダイレクトする。
要件②
 特定のアクセスだけはリダイレクトさせない。

この2つの要件を満たすために以下の設定を入れました。

serverディレクティブに書きました。

set $goMainte "true";

if ($remote_addr ~* "^10\.240\.1\.88") { # 許可するアドレス(このアドレス以外はリダイレクトする)
set $goMainte "false";
}

if ($goMainte = "true") {
rewrite ^(.*)$ http://リダイレクト先アドレス redirect;
}

リダイレクトの種類が2つほどありまして(恒久的にリダイレクト 一時的にリダイレクト)

・恒久的なリダイレクト
HTTP ステータス番号 301 を返して、リダイレクトを実行する場合は、permanent を用います。

・一時的なリダイレクト
HTTP ステータス番号 302 を返して、リダイレクトを実行する場合は、redirect を用います。

そんな違いがあったとは露知らず
最初何も考えずにpermanentでリダイレクトさせていたら会社の先輩に
「グーグル検索結果に影響するから、リダイレクトは一時的の方を選んだ方が良いよ」と教えて頂きました。

しかし・・・今日は色々と辛い一日でした。

コメントを残す