インターネットの発展において、高可用性は常に非常に重要な問題です。電子商取引、ゲーム、さらには一部の SaaS などの多くのビジネスにとって、高可用性は満たさなければならない基準です。高可用性アーキテクチャの実装において、人気のあるサーバーサイド言語としての PHP には、共有する価値のある独自の開発経験もあります。
負荷分散は、高可用性アーキテクチャを実現するための重要なリンクの 1 つです。トラフィックを迂回するという目的を達成するために、リクエストを複数のサーバーに分散できます。 PHP 開発で一般的に使用される負荷分散ソフトウェアには、LVS、Nginx、HAproxy などが含まれます。
その中でもNginxは広く使われており、軽量かつ柔軟性が高いという特徴を持っています。 Nginx では、上流モジュールを設定し、複数のサーバーの IP とポートを定義することで、リクエストの転送を実現できます。また、Nginxは静的リソースの処理性能に優れているため、Webサイトのアクセス速度をさらに向上させることができます。
ステートレス アプリケーションとは、アプリケーション サーバーがユーザーのセッション状態 (セッション) を保存せず、その状態をストレージ内の共有に保存することを意味します。 。このようにして、複数のアプリケーション サーバー間で状態データを共有できるため、高可用性アーキテクチャが実現します。一般的に使用されるストレージには、Memcached、Redis などが含まれます。
ステートレス アプリケーションを実装する場合は、次の原則に注意する必要があります。
(1) ローカル ストレージの使用は禁止されています。アプリケーション サーバーでは、ローカル ファイル、データベースの使用が禁止されています。およびその他の保管方法は禁止されています。これにより、複数のサーバー間で状態が共有されなくなるためです。
(2) グローバルに一意の ID を使用する: ユーザーがログインするとき、グローバルに一意の ID をユーザーに割り当てる必要があり、この ID は共有ストレージに保存されます。リクエストごとに、アプリケーション サーバーはユーザーを認証するために共有ストレージから ID を取得する必要があります。
(3) ユーザー状態データのサイズを制限する: 共有ストレージの容量には限りがあるため、ユーザー状態データのサイズを制限する必要があります。
以上が高可用性アーキテクチャの実装: PHP 開発経験の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。