Nginxでリバースプロキシ

この前SquidApacheでのリバースプロキシについて書きましたが、
実はリバースプロキシするのに便利なNginx(“エンジンエックス”と発音)なるものがあります。
Nginxはウェブサーバ機能を内包していますが、
リバースプロキシとしてだけ使ってウェブサーバはApacheなんて構成も可能です。

Debian系のRaspberry Piにて
“1”ディレクトリにアクセスしたときに”192.168.1.1″へ、
“100”ディレクトリにアクセスしたときに”192.168.1.100″へつながる構成を作って見ます。
すなわち

http://<Raspberry PiのIPアドレス>/1/abc/index.html

へのリクエストが

http://192.168.1.1/abc/index.html

に置き換えられるようなイメージです。
最初に以下を実行します。

# apt-get install nginx

そして設定ファイル”/etc/nginx/nginx.conf”の内容を以下のようにします。

server {
  listen 80;
  server_name <Raspberry PiのIPアドレス>;

  location /1/ {
    rewrite /1/([^/]+) $1  break;
    proxy_pass http://192.168.1.1;
  }

  location /100/ {
    rewrite /100/([^/]+) $1  break;
    proxy_pass http://192.168.1.100;
  }
}

最後に起動して

# /etc/init.d/nginx start
# update-rc.d nginx defaults

これで期待した動作となります。
ただし、リバースプロキシ経由でアクセスされることを前提にコンテンツを作成する必要があるので、
その辺り注意が必要です。

SquidやApacheと比べてNginxの振り分け機能は結構豊富で自由度が高いので、
きっと望みの環境が構築できるでしょう。

広告