まぽろぐ

まぽらんのブログ、略してまぽろぐです!ひとりごとを中心に、クリックゲーレビューやネトゲ、サーバー関係等の内容を書いていきます。たまにまじめな記事も書いたりするかもしれません。

CentOSにPoundを入れてリバースプロキシしてみた

   

どーもまぽらんです!最近記事書いてなかったので久しぶりです。

今回はCentOSの活用で「Pound」を使ったリバースプロキシサーバーの構築を行いたいと思います。
以前までiisでARRを使っていましたが、FTPのリバースプロキシに対応しないなどいろいろ不都合があるので思い切ってLinuxで行うことにしてみましたよ!

深夜で眠くて内容が適当と言うかメモ書きですが許してください。

 

概要

ちなみに今回組む構成はコチラ

kousei

Windows Server 2012 R2上にHyper-vを動かしていて、Hyper-v上のCentOSのApacheで今いくつかのサイトを動かしています。(まぽろぐとか)
以前までは一旦iis(192.168.0.50)に行ってからARRを使って192.168.0.51にあるApacheで表示させていました。
この状態の何が問題かというと、ポート21でFTPを見たい時、外からだとiisのFTPかCentOSのFTPかどっちかしか選べないことです。(もちろんどっちかのポートを変えてあげれば通りますが・・・)
iisはFTPのリバースプロキシに対応していないので。
※Poundもftpのリバースプロキシはできません。

そんなわけでiisのARRで行っていたリバースプロキシをCentOSで行ってみようということです!

ここまで書いて説明が下手だなぁと思いました、うん。
要するに回線を1本しか契約してなくて、XXX.mapopi.comとYYY.mapopi.comのように複数のサブドメインを、それぞれ別のサーバーで運用してる時に外部から判別できない問題をARRじゃない方法で直そうってことです。

 

準備

CentOSにepelのリポジトリが必要になります、入れましょう。
ググれば出てきます(´Д`)

 

作業

まずはインストールから。
Poundをyumでインストールします。

yum install Pound

Poundは大文字じゃないと通らないと思います。
でインストールしたら早速設定。

vi /etc/pound.cfg

と打って編集画面へ。

pound1

Listenの部分は自分のIPアドレスを指定するのでここは192.168.0.51を使います。
ポートはHTTPだけを構成するので80番。
最初から書かれているHTTPSに関する部分は使う予定がないのでバッサリ削除しました。

どこに飛ばすかという部分のServiceですが、今回は負荷分散とかは行わないので基本的に1つのサービス欄に1つのアドレスのみ記載です。

1つ目はまぽろぐ(http://mapopi.com)を127.0.0.1に飛ばす指定です。まぽろぐはCentOS上のApacheで動いているので192.168.0.51(プライベートIPアドレス)って書いても大丈夫です。
ポートは80をPoundが使用するので飛ばす先のポートは8080とします。もちろんApacheのListen portとかの設定変更が必要です。ポートを8080とした場合はiptablesとかで8080のポートを開けることもお忘れなく。

2つ目は特に外部公開はしていませんが、ときたま管理の時とかに使うサイトです。コチラも同様にCentos上のApacheに飛ばします。
3つ目は非公開サイトなのでコメントアウト。

最後はホストの指定をしていません。上から順番に処理なので、ホストを指定しないと残り全部をiisに飛ばすということになります。
こちらではでーてーぶいあぷろだぁとかが動いています。iisはipアドレスが違ってポート80が使えるので80に飛ばします。

このへんは正規表現が使えるのでいっぱいサイトがある方は活用してみてください。
うちはまぽろぐをmapopi.comとしてるので前半に正規表現使えなくて非常に苦戦しました(´;ω;`)
素直にmapopi.com.*って書けばいいだけってことに気づくのに2時間はかかった・・・

 

最後に勝手に起動するように

chkconfig pound on

としておきましょう。

 

これでApacheの使用ポートを80から8080に変更すれば完了。
今後はPoundを経由してうちのいくつかのサーバーに振り分けられるようになります。

 

まとめ

リバースプロキシはよく負荷分散に使われますが、うちのサイトでは分散する負荷など無いのでそこら辺は心配いらないですね(;´Д`)
というかそもそも分散するも何も物理的にサーバー1つしか無いですし・・・

様々な機能が仮想OS上に移っていくと少し不安になりますが、移し替えとかバックアップも簡単な仮想OSはやっぱ便利ですねぇ。

 - サーバー , ,