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; } }