Nginxを使えば簡単にプロキシサーバを構築することができます。手元で動かせるサンプルコードをGithubで公開しています。git cloneしてご利用ください。PCにDockerがインストールされていれば簡単に動作環境を構築することができます。
https://github.com/shoyan/nginx-proxy-cache
キャッシュを有効にする
Nginxのキャッシュ機能はデフォルトでは有効ではないので、設定する必要があります。
/etc/nginx/nginx.conf
1 | user nginx; |
次にlocationディレクティブでキャッシュを有効にします。
/etc/nginx/conf.d/default.conf
1 | server { |
以上の設定を行えばキャッシュが有効になります。
キャッシュの詳細な設定についてはNginxのドキュメントを参照ください。
ngx_http_proxy_module
アプリサーバはNode.jsで構築しています。1秒でHello Worldを返す単純なアプリサーバです。こちらもDockerで動作するのでNode.jsをPCにインストールする必要はありません。
プロキシサーバとアプリサーバの起動は次のコマンドで行います。
1 | $ docker-compose up |
1回目のアクセスはリクエストがアプリサーバまで行くのでレスポンスタイムは1秒程度かかります。
1 | $ curl http://localhost:8080 -w "%{time_total}" |
2回目からのアクセスはプロキシサーバがキャッシュしているため、レスポンスタイムが速くなります。
1 | $ curl http://localhost:8080 -w "%{time_total}" |
確認が終わったらサーバを停止しておきましょう。サーバの停止はCtrl+Cか次のコマンドで行えます。
1 | $ docker-compose stop |