ubuntuのnginxでIPベースのリバースプロキシを設定する方法

Dockerを使ったお手軽PaaS環境を作ろうと考えています。最近だとDokkuというものあるけど、いろいろソフトウェアをインストールしたりしたいので、俺俺PaaS環境を整えたいのです。

そのためにリバースプロキシを用意しようと考えています。今まではApacheしか使ったこと無かったけれども、どうも最近はnginxの方が人気があるみたいだし、そっちをそろそろ勉強がてら使い始めてみようかと思ってます。

ということで、まずはnginxのインストール

$ sudo apt-get install nginx

設定ファイルは/etc/nginx/に配置されているけど、この下を直接設定するのではなくて、/etc/nginx/conf.d/の下にファイルをおくと自動的に読み込んでくれる。なので、今回は設定するホストごとにファイルをおくことで管理しやすくする。/etc/nginx/conf.d/server1.confというファイル名で下記の内容でファイルを作成する。

server {
  listen    172.16.35.2:80; # IP:PORT とすることで特定のIPとポートのIPベースのバーチャルホストを設定できる
  location / {
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://localhost:49153; # 実際はここのURLのページ内容が返される
  }
}

参考:http://wiki.nginx.org/LikeApache

あとはnginxのリロードを行えば良い。

sudo service nginx reload

ハイパフォーマンスHTTPサーバ Nginx入門

ハイパフォーマンスHTTPサーバ Nginx入門