検索
ホームページバックエンド開発PHPチュートリアルPHP は Web サイトのビッグデータ、大規模なトラフィック、高い同時実行性を解決します


この記事では、Web サイトのビッグデータトラフィックと高い同時実行性を解決するための PHP を主に紹介します。必要な友人に参考にしてください。


1: ハードウェアの点では、通常の p4 サーバーは 1 日あたり最大約 100,000 の IP をサポートできます。ハードウェアが強力でない場合、それを解決するには専用のサーバーが必要です。 、ソフトウェアを最適化する方法がすべてです。何もできません。サーバーの速度に影響を与える主な要因は、ネットワーク - ハードディスクの読み取りおよび書き込み速度 - メモリ サイズ - CPU の処理速度です。

2: ソフトウェアについて

まず最初に、データベースは適切な構造でなければなりません。頻繁なクエリには相関サブクエリを追加しないようにしてください。 If If 条件が許せば、通常は Linux オペレーティング システムに MySQL サーバーをインストールすることが最善です。 Apache と

nginx については、同時実行性が高い場合には、Apache サーバーの代わりに

nginx を使用することをお勧めします。 nginx はメモリ消費量が少なく、公式テストでは 50,000 の同時接続をサポートできますが、実際の運用環境では、同時接続の数は 20,000 ~ 30,000 に達する可能性があります。

PHP の不要なモジュールをできるだけ閉じて、memcached を使用します。Memcached は、データベースを使用せずにメモリから直接データを転送することで、速度が大幅に向上します。 GZIP 圧縮は Web サイトを最適化し、Web サイトのコンテンツを圧縮して Web サイトのトラフィックを大幅に節約します。

2 番目に、外部ホットリンクは禁止されています。

外部 Web サイトからの画像やファイルのホットリンクは、多くの場合負荷がかかるため、自分自身の画像やファイルへの外部ホットリンクは厳しく制限されるべきです。幸いなことに、現時点では、Apache を使用するだけでホットリンクを自動的に制御できます。 IIS には、同じ機能を実現できるサードパーティの ISAPI もいくつかあります。もちろん、偽の紹介を使用してコードを介してホットリンクを実現することもできますが、現時点では意図的に偽の紹介をホットリンクに設定する人は多くありません。今のところ無視することも、ウォーターマークを追加するなどの非技術的な手段を使用して解決することもできます。写真に。

3 番目に、大きなファイルのダウンロードを制御します。

大きなファイルをダウンロードすると大量のトラフィックが消費され、非 SCSI ハードドライブの場合、大量のファイルをダウンロードすると CPU が消費され、ウェブサイトの応答性が低下します。したがって、2M を超える大きなファイルのダウンロードは提供しないようにしてください。提供する必要がある場合は、別のサーバーに大きなファイルを配置することをお勧めします。 4 番目に、メインのトラフィックを迂回するために別のホストを使用します

ファイルを別のホストに配置し、ユーザーがダウンロードできるように別のイメージを提供します。たとえば、RSS ファイルが大量のトラフィックを消費していると感じる場合は、FeedBurner や FeedSky などのサービスを使用して、RSS 出力を他のホストに配置します。この方法では、他のユーザーのアクセスによるトラフィック プレッシャーのほとんどが集中します。 FeedBurner のホストと RSS はあまり多くのリソースを占有しません

5 番目に、メインのトラフィックを迂回するために別のホストを使用します ファイルを別のホストに配置し、ユーザーがダウンロードできるように別の画像を提供します。たとえば、RSS ファイルが大量のトラフィックを消費していると感じる場合は、FeedBurner や FeedSky などのサービスを使用して、RSS 出力を他のホストに配置します。この方法では、他のユーザーのアクセスによるトラフィック プレッシャーのほとんどが集中します。 FeedBurner のホストと RSS は、あまり多くのリソースを占有しません。

6番目、トラフィック分析および統計ソフトウェアを使用します。

ウェブサイトにトラフィック分析と統計のソフトウェアをインストールすると、どこで大量のトラフィックが消費されているか、どのページを最適化する必要があるかがすぐにわかります。そのため、トラフィックの問題を解決するには、正確な統計分析が必要です。例: Google アナリティクス。

高同時実行性と高負荷の制約: ハードウェア、展開、オペレーティング システム、Web サーバー、PHP、MySQL、テスト

展開: サーバーの分離、データベースクラスターとライブラリテーブルのハッシュ、ミラーリング、負荷分散

負荷分散の分類: 1)、DNS ラウンドロビン 2) プロキシサーバーの負荷分散 3) アドレス変換ゲートウェイの負荷分散 4) NAT 負荷分散 5) リバースプロキシ ロード バランシング 6) ハイブリッド ロード バランシング

導入計画 1:

適用範囲: 本体として静的コンテンツを含む Web サイトとアプリケーション システム、高いシステム セキュリティ要件を持つ Web サイトとアプリケーション システム。

メインサーバー: メインサーバー

は、プログラムの主要な動作圧力を担い、Webサイトまたはアプリケーションシステムでの動的リクエストを処理します。

は、添付ファイルをファイルサーバーにプッシュします。

セキュリティ要件が高く、主に静的な Web サイトの場合、サーバーを内部ネットワークに配置して、外部ネットワークからのアクセスをブロックできます。

DB サーバー: データベース サーバー

はデータベースの読み取りと書き込みの負荷を負います。

はメイン サーバーとのデータ量の交換のみを行い、外部ネットワーク アクセスをブロックします。

ファイル/ビデオ サーバー: ファイル/ビデオ サーバー

システム内の大規模なシステム リソースと帯域幅リソースを占有するデータ ストリームを伝送します。

大規模な添付ファイルのストレージおよび読み取り/書き込みの倉庫として機能します。自動ビデオ処理機能が搭載されます。

公開サーバー グループ:

は静的ページの公開のみを担当し、Web リクエストの大部分を処理します。

は Nginx を通じて負荷分散デプロイメントを実行します。

導入計画 2:

適用範囲: 動的インタラクティブ コンテンツを主体とする Web サイトまたはアプリケーション システム、負荷が高く十分な予算がある Web サイトまたはアプリケーション システム

Web サーバー グループ:

所有者のない Web サービスこの関係は、並列冗長設計です。

フロントエンド負荷分散装置または Nginx リバース プロキシを通じて負荷分散を実現します。

専用のファイル サーバー/ビデオ サーバーを分割して、軽量バスと重量バスを効果的に分離します。 pass DEC すべてのデータベースを接続し、マスターとスレーブを同時に分割できます。

データベース サーバー グループ:

は比較的バランスのとれたデータベースの読み取りおよび書き込みの負荷に耐えます。

はデータベースの物理ファイルのマッピングを通じて複数のデータベースのデータ同期を実現します。

共有ディスク/ディスクアレイ

は、データ物理ファイルの統合された読み取りと書き込みに使用されます

大規模な添付ファイルの保管倉庫に使用されます

システム全体のバランスと冗長性を通じて、IO効率とデータセキュリティを確保します独自の物理ディスク;

ソリューションの特徴:

フロントエンドの負荷分散を通じて Web の負荷を合理的に分散します。

ファイル/ビデオ サーバーと通常の Web サーバーを分離することで、合理的にデータ フローを分散します。データベース サーバー グループを通じてデータベース IO プレッシャーを分散します。

各 Web サーバーは通常、1 つのデータベース サーバーにのみ接続します。

ディスク アレイの導入により、非常に短時間で冗長データベース サーバーに切り替えることができます。システム IO 効率が大幅に向上するだけでなく、データ セキュリティも大幅に向上します。

Web サーバー:

通常の状況では、Web サーバーのリソース使用量の大部分は、Apache によって生成される負荷です。同時接続数が多い場合には、Nginx が適切な代替手段となります。 Apacheサーバー。 Nginx (「エンジン x」) は、ロシアで作成された高性能 HTTP およびリバース プロキシ サーバーです。中国では、Sina、Sohu Pass、NetEase News、NetEase Blog、Kingsoft Xiaoyao.com、Kingsoft iPowerWord、Xiaonei.com、YUPOO Photo Album、Douban、Xunlei Kankan などの多くの Web サイトやチャネルが Nginx サーバーを使用しています。

Nginx の利点:

高い同時接続: 公式テストでは 50,000 の同時接続をサポートできますが、実際の運用環境では、同時接続の数は 20,000 ~ 30,000 に達します。

低メモリ消費量: 30,000 の同時接続の下で、10 個の Nginx プロセスが起動しても、メモリの消費量はわずか 150M (15M*10=150M) です。

組み込みのヘルスチェック機能: Nginx プロキシのバックエンドの Web サーバーがダウンしても、フロントエンドのアクセスは影響を受けません。

戦略: 古い Apache と比較して、リソース使用量が少なく、負荷容量が高い Web サーバーである Lighttpd と Nginx を選択します。

Mysql:

MySQL 自体は強力な負荷容量を備えています。MySQL の最適化は、最終的にはシステムの最適化についての十分な理解が必要となるため、非常に複雑なタスクです。データベース作業には、プログラム開発中に注意を払う必要があるインデックス作成やクエリ効率の向上などのソフトウェア開発テクニックに加えて、短期間のクエリ、読み取りと書き込みが大量に含まれ、主に MySQL の実行効率に影響を与えることは誰もが知っています。ハードウェア機能の観点からは、検索、ディスク IO レベル、CPU サイクル、メモリ帯域幅が影響します。

サーバー上のハードウェアとソフトウェアの条件に基づいてMySQlの最適化を実行します。 MySQL 最適化の中核はシステム リソースの割り当てにあります。これは、より多くのリソースを無制限に MySQL に割り当てることを意味するものではありません。 MySQL 設定ファイルには、最も注目すべきパラメーターがいくつか導入されています:

インデックス バッファーの長さを変更する (key_buffer)

テーブルの長さを変更する (read_buffer_size)

開いているテーブルの最大数を設定する (table_cache)

Right Set低速で長いクエリに対する時間制限 (long_query_time)

条件が許せば、一般に MySQL サーバーを FreeBSD ではなく Linux オペレーティング システムにインストールするのが最善です。
戦略: MySQL の最適化には、ビジネス システムのデータベース読み取りおよび書き込み特性とサーバー ハードウェア構成に基づいてさまざまな最適化計画を策定する必要があり、必要に応じて MySQL のマスター/スレーブ構造をデプロイできます。

PHP:

1. できるだけ少ないモジュールをロードします

2. Windows プラットフォームの場合は、通常使用する Apache を使用してみてください

3. php コードのプリコンパイル結果とデータベース結果をキャッシュすることで、php コードの実行速度が向上します)
eAccelerator、eAccelerator は、動的コンテンツ キャッシュを最適化し、php スクリプトのキャッシュ パフォーマンスを向上させ、いつPHP スクリプトがコンパイルされると、サーバー上のオーバーヘッドがほぼ完全に排除されます。

Apc: Alternative PHP Cache (APC) は、無料で公開されている、PHP 用に最適化されたコード キャッシュです。これは、PHP 中間コードをキャッシュおよび最適化するための、無料でオープンかつ堅牢なフレームワークを提供するために使用されます。

memcache: Memcache は、Danga Interactive によって開発された高性能の分散メモリ オブジェクト キャッシング システムであり、データベースの負荷を軽減し、動的アプリケーションでのアクセス速度を向上させるために使用されます。主なメカニズムは、メモリ内に統合された巨大なハッシュ テーブルを維持することです。

Xcache: 中国人によって開発されたキャッシュです。戦略: PHP 用のアクセラレータをインストールします。

プロキシ サーバー (キャッシュ サーバー):

Squid Cache (略して Squid) は、人気のあるフリー ソフトウェア (GNU General Public License) プロキシ サーバーおよび Web キャッシュ サーバーです。 Squid は、Web サーバーのフロントエンド キャッシュ サーバーとして機能し、関連するリクエストをキャッシュして Web サーバーの速度を向上させることから、World Wide Web、ドメイン ネーム システム、およびグループのその他の Web 検索をキャッシュすることまで、幅広い用途に使用できます。ネットワーク リソースを共有し、トラフィックをフィルタリングしてネットワークを保護し、プロキシ ネットワークを介して LAN に接続します。 Squid は主に Unix ライクなシステム上で動作するように設計されています。

戦略: Squid リバース プロキシ サーバーをインストールすると、サーバーの効率が大幅に向上します。

ストレス テスト: ストレス テストは、すべての重要なソフトウェア テスト作業の一部である基本的な品質保証動作です。ストレス テストの基本的な考え方はシンプルです。通常の条件下で手動または自動テストを実行するのではなく、コンピューターの数が少ない、またはシステム リソースが不足している条件下でテストを実行します。通常、ストレス テストが行​​われるリソースには、内部メモリ、CPU 可用性、ディスク容量、ネットワーク帯域幅が含まれます。同時実行性は通常、ストレス テストに使用されます。

ストレス テスト ツール: Webbench、ApacheBench など。


脆弱性テスト: システムの脆弱性には主に以下が含まれます。

SQL インジェクションの脆弱性、XSS クロスサイト スクリプティング攻撃など。セキュリティには、オペレーティング システムの脆弱性、mysql、Apache などの脆弱性などのシステム ソフトウェアも含まれますが、これらは通常、アップグレードによって解決できます。

脆弱性テストツール: Acunetix Web Vulnerability Scanner


関連コンテンツが見つかりません。

関連推奨事項:

同時実行の問題を解決するための PHP のいくつかの実装

phpは大量のデータを投稿する際の損失の問題を解決します

以上がPHP は Web サイトのビッグデータ、大規模なトラフィック、高い同時実行性を解決しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
アクション中のPHP:実際の例とアプリケーションアクション中のPHP:実際の例とアプリケーションApr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHP:インタラクティブなWebコンテンツを簡単に作成しますPHP:インタラクティブなWebコンテンツを簡単に作成しますApr 14, 2025 am 12:15 AM

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

PHPとPython:2つの一般的なプログラミング言語を比較しますPHPとPython:2つの一般的なプログラミング言語を比較しますApr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPの永続的な関連性:それはまだ生きていますか?PHPの永続的な関連性:それはまだ生きていますか?Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPの現在のステータス:Web開発動向を見てくださいPHPの現在のステータス:Web開発動向を見てくださいApr 13, 2025 am 12:20 AM

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHP対その他の言語:比較PHP対その他の言語:比較Apr 13, 2025 am 12:19 AM

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHP対Python:コア機能と機能PHP対Python:コア機能と機能Apr 13, 2025 am 12:16 AM

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHP:Web開発の重要な言語PHP:Web開発の重要な言語Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境