モチベーション

Nginxでリバースプロキシ用の設定をメモする

サブドメインでアクセス先サーバを変更する場合

server {
    listen 80;
    server_name wiki.www.example.jp;
 
    location / {
      proxy_pass http://192.168.33.1:80;
    }
}
server {
    listen 80;
    server_name blog.www.example.jp;
 
    location / {
        proxy_pass http://192.168.33.2:80;
    }
}

URIでアクセス先サーバを変更する場合

server {
    listen       80;
    server_name  www.example.jp;

    location /wiki {
        rewrite ^/wiki/(.+) $1 break;
        proxy_pass http://192.168.33.1:80/$1;
    }

    location /blog {
        rewrite ^/blog/(.+) $1 break;
        proxy_pass http://192.168.33.2:80/$1;
    }

    location /log {
        rewrite ^/log/(.+) $1 break;
        proxy_pass http://192.168.33.3:80/$1;
    }

}

実際に設定したもの

blogへのアクセスだけならこれでOK

server {
    listen 80;
    server_name www.example.jp;

    location / {
      proxy_pass http://192.168.27.20:80;
    }
}

ちなみにバーチャルドメイン(バーチャルホスト)機能もある

1台のWebサーバで複数のサイトを構成する機能をバーチャルドメインとかバーチャルホストという.バーチャルドメインには2つの方法ががあり,1つはホスト名ベースのバーチャルドメイン,もう一つはipアドレスベースのバーチャルドメイン.詳細な設定は省くが,webサーバを大量に構築したいときに使える方法である.

参考

リバースプロキシ基礎知識

nginxを使った構築記事

nginx pass_proxyについて