過去に行ったように、コードで認識しなければならない問題があるため、負荷分散に移行するすべての人に役立つ情報を収集したいと思います。
1 つの Apache サーバーから squid にリバース プロキシ/ロードバランサーとして移行し、背後に 3 つの Apache サーバーを配置しました。
PHP/MySQL を使用しているため、問題が異なる場合があります。
解決しなければならなかったこと:
セッション
「デフォルト」の php セッション (ファイル) から分散 memcached-sessions に移行しました。簡単な解決策は、実行する必要があります。この方法では、ロードバランサーに「スティッキー セッション」も必要ありません。
キャッシング
ウェブサーバーごとの非分散 apc-cache に、分散オブジェクト キャッシュ用の別の memcached-layer を追加し、すべての古い/時代遅れのファイル キャッシュ システムをそれに置き換えました。
アップロード
アップロードは共有 (nfs) フォルダーに移動します。
速度のために最適化したもの:
静的ファイル
メインの NFS は lighttpd を実行し、(ユーザーがアップロードした) イメージを提供します。Squid はそれを認識しており、Apache ノードに画像を照会することはありません。これにより、パフォーマンスが大幅に向上しました。Squid は、これらのファイルを RAM にキャッシュするようにも構成されています。
コード/プロジェクトをロードバランシングに向けて準備するために何をしましたか?この移行について考えている人にとってのその他の懸念事項はありますか?また、使用しているプラットフォーム/言語は何ですか?