LoginSignup
3
2

More than 5 years have passed since last update.

Nginx を使って内部IP のときのみ表示するコンテンツの設定

Posted at

やりたいこと

クックパッドの開発者ブログを見ていて、
自社でのみ見えるコンテンツで改善・バグの指摘ができる機能をWEBサービスに作ろうと思った。

実際にやること

Nginx で内部IPかどうかを判別して、アプリケーションに渡す時にヘッダーを付与する。
アプリケーション側ではそのヘッダーの値によって、内部コンテンツの表示を切り替える。

環境

  • WEB,プロキシサーバ: nginx
  • アプリケーション: 何でもOK!

Nginx の設定

Nginx 側では geo を使用して、内部IPの時のフラグを作成する。
そのフラグがあれば、内部IPであることを表すヘッダーを付加して、
WEBアプリケーションへ proxy_pass する。

http {
  geo $geo {
    default        0;
    // 内部IP を一覧で記載
    127.0.0.1      1;
  }

    location / {
     # set header
     proxy_set_header X-INTERNAL-ACCESS $geo;

     // 他設定。。。
     ...
     proxy_pass http://127.0.0.1:3010;
  }
}

geo 部分については別ファイルに外出しして、includeで読み込む方が良い。

アプリケーション側の設定

ヘッダーの内容を判別して、内部コンテンツの表示・非表示を切り替える。
以下はnode の例。

 if(req.headers['x-internal-access'] === '1' ) {
   // 内部コンテンツを追加する処理
 }
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2