Nginxでリバースプロキシを構築する

Apacheで動かしているWEBサイトの上にNginxをリバースプロキシとして動作させます。 さらに、リクエストURLをrewrite機能を使って書き換えます。

Nginxの設定

upstreamにApacheで動作しているWEBサーバを指定します。Apacheはポート81で動作しているものとします。

また、proxy_set_header...の項目はApacheのログの設定をしています。Nginxをプロキシにしているので、この設定をしないとApacheのログのアクセス元がローカルホストになってしまいます。

rewriteの設定では、正規表現を使用して、.htmファイルのアクセスがあった場合は/hogehogeへのアクセスへ書き換えています。

upstream wordpress-apache {
    server localhost:81;
}
server {
    listen 80;

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    location / {
        proxy_pass http://wordpress-apache/;
        rewrite ^/(.*)\.htm$ /hogehoge;
    }
}