今回作るシステムは、静的コンテンツを配信するサーバがすでにあり、 ・認証機構(ログイン画面)を追加 ・変更を最小限に抑えて開発 ・スケールアウトしやすい ・アクセス数が多いので、できるだけ処理を軽くする ことを目的とします。 この手のシステムは、既存システムに手を入れるのが普通ですが、既存システムでプログラムが動かないことには話になりません。 という事で、認証機構を追加したプロキシサーバを作成することで実現したいと思います。 仮に、PHPのみを使用して実装する場合は、下記のように出来ます。 ・ログイン画面はPHP ・rewriteでログイン画面系以外の全てのアクセスをindex.phpに向ける ・認証に失敗したらログイン画面にリダイレクト ・認証成功したら認証状態をセッションに記録(有効期限も記録) ・セッションはmemcacheなどで全サーバ共有 ・セッションの値が有効なときはコンテンツ
![nginxで認証用proxyサーバを作成](https://cdn-ak-scissors.b.st-hatena.com/image/square/fb82e018058b1db46e904d436ec4d1ed4e27d2c4/height=288;version=1;width=512/https%3A%2F%2Fblog.asial.co.jp%2Fwp-content%2Fuploads%2F2022%2F07%2Fdefault.png)