hatora's blog

日常の出来事や仕事のことなど/Java/開発/Web/IT

nginxでリバースプロキシ

nginxの話題を多く聞くので、勉強として触ってみました。
とうことで備忘録

nginx:リバースプロキシ apache:バックエンド
な感じで構築してみました。
*1



環境
OS:CentOS6 (さくらVPS)
リバースプロキシ:nginx/1.4.3
バックエンド:Apache/2.2.15


まずはnginxのインストールから

sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
sudo yum install -y nginx


これでインストールは完了したので以下コマンド起動を確認
localhostにポート80でアクセスして、「Welcome to nginx!」が表示されていればOK

※私の場合、さくらのVPS:ポート8080で動作させていたのですが、iptablesで制限かけていることに気づかずはまりましたorz

sudo service nginx start


続いて、nginxの設定を行います。
上記の手順でインストールしてれば/etc/nginxに設定ファイル群が存在しているはずです。
Apachehttpd.confに該当するのが、nginx.confだと思ってください。

ls /etc/nginx/
conf.d  fastcgi_params  koi-utf  koi-win  mime.types  nginx.conf  scgi_params  uwsgi_params  win-utf



nginx.confを見てみると、ポートやサーバ名の設定部分が見当たりません。
が、よくよく見ると以下の記述が見当たります。

include /etc/nginx/conf.d/*.conf;

そうです。
conf.d配下を確認すると、default.confが存在しているのが確認できます。
ポート等の設定はdefault.confに記述されています。

ということで設定してみましょう。
以下の設定だけでOKです。

    listen       80;
    location / {
         proxy_pass http://127.0.0.1:8080;
       # root   /usr/share/nginx/html;
       # index  index.html index.htm;
    }


nginxを再起動させれば、リバースプロキシとして動作していることを確認できるはずです。
※ただし、この状態だとApache側のアクセスログにIP:127.0.0.1しか残りません。

*1:本来はApacheをバックエンドにすることはないと思いますが。。。