どうも、鯨井貴博@opensourcetechです
本日は、nginxをリバースプロキシとして使用してみようと思います
システム構成としては、
以下のようになります。
-------
クライアント(Webブラウザ)
192.168.2.213:YYYYY
※YYYYYはクライアントPort
⇅
192.168.2.206:80
リバースプロキシ(nginx)
⇅
192.168.2.206:8080
Webサーバ(apache)
使用OSは、CentOS6.5(32bits)となっており、
yumによるソフトウェアインストールが可能なことが前提です。
①apache(httpd)のインストール
yum -y install httpd
②apache(httpd)の設定
vi /etc/httpd/conf/httpd.confとし、
Listenディレクティブのみ変更します。
-------
Listen 8080
③apache(httpd)のコンテンツファイル作成
vi /var/www/html/index.htmlとして、
コンテンツファイルを作成します。
今回は、簡単なHTMLタグを含めた以下としました。
-------
④apache(httpd)の起動
/etc/init.d/httpd start
これで、apache(httpd)の設定は完了です。
⑤nginxのインストール
nginxは通常のyumレポジトリからはまだインストール出来ないので、
レポジトリファイルを追加して、
そこからインストールします。
cd /etc/yum.repos.d
vi nginx.repo
yum -y install nginx
⑥nginxの設定
/etc/nginx配下のnginx.confを以下のように編集します。
⑦nginxの起動
/etc/init.d/nginx start
⑧ファイアーウォール(iptables)によるWebポートの開放
iptables -L --line-numbersで現状確認
そして、ルールの追加と保存
iptables -I INPUT 5 -p tcp --dport 80 -j ACCEPT
iptables-save > /etc/sysconfig/iptables
⑨クライアント(webブラウザ)からのアクセス
Webブラウザからhttp://192.168.2.206とアクセスすると、
以下のようにコンテンツファイルが表示されました
おまけ(パケットキャプチャから動作を確認)
-------
tcudpump -i any tcp port 80 or tcp port 8080 -w test.pcapとし、
アクセスの様子をパケットキャプチャしたファイルを
wiresharkで確認してみると、
以下のように
赤で囲んだ部分がクライアントとnginxのやり取り、
青で囲んだ部分がnginxとapache(httpd)のやり取りがされていることが確認出来ます。
また、下のブルーの囲ったHTTPヘッダー部には、
nginx.confで編集した以下の部分が対応していることが確認出来ます
今回の設定では、
nginxによるリバースプロキシでの
データキャッシュの部分は含まれておりませんが、
それは次回にしようと思います。
nginxが試験範囲として含まれているLPICレベル2に興味がある方は、
こちらもどうぞ。