通信チャネル、デバイス、およびユーザーブラウザー-サイトの所有者がこれらすべてに影響を与えることはできません。 彼ができることの1つは、外部から要求された情報がサーバーを離れる速度を上げることです。 Webプロジェクトのパフォーマンスを向上させるには、さまざまな方法を使用します。 それらのいくつかを次に示します。
- サーバー側のキャッシュ。
- クライアント側のキャッシュ。
- より高速なディスクドライブを使用します。
- 画像の最適化。
- キャッシュとデータ圧縮の最適化を目的としたアクセラレータアプリケーションの使用。
- 負荷分散とSSLオフロード。
- 地理情報またはDNS情報に基づく負荷分散。
簡単に言うと、マルチレベルキャッシュシステムを使用し、サーバーコンポーネントの非同期操作を調整することで、ブラウザーでページを表示するのにかかる時間を短縮できます。
この記事では、Webソリューションを高速化するお気に入りのオープンソースツールについて説明します。
ワニス-HTTPアクセラレーター
ニスキャッシュは、Webアプリケーションアクセラレータです。 HTTPを使用するWebサーバーの前にインストールされ、コンテンツをキャッシュするように構成されています。 Varnishの目的は、キャッシュとデータ圧縮を最適化することです。これにより、サイトを高速化できます。
ワニスは非常に高速なツールです。 多くの負荷の高いプロジェクトで使用されます。 その中でも-ウィキペディア、Facebook、Twitter。 ワニスの作成者は、標準のサーバーハードウェアで20 Gb / sについて話しています。
HAProxy-プロキシサーバーとロードバランサー
HAProxyは、負荷分散、SSLオフロード、Webソリューションのパフォーマンスの最適化、データ圧縮、ルーティングのために設計されたソフトウェアツールです。
このプロジェクトは、GitHubやRedditなどの有名なサイトで使用されています。 また、Amazon Web ServicesのOpsWorksにも関与しています。 HAProxyが通常1秒あたり15,000〜30,000リクエストの負荷を保持し、問題なく2 Gb / sのチャンネルを負荷する様子を見てきました。 HAProxyが占有するものと10ギガビットの通信回線を見つけるという証拠があります。
Squid-キャッシングプロキシサーバー
Squidは、Webプロジェクト用のHTTPトラフィックリダイレクト機能を備えたプロキシキャッシングサーバーで、HTTP、HTTPS、FTPなどをサポートしています。 頻繁に要求されるページをキャッシュして再利用することにより、帯域幅の要件を減らし、サーバーの応答時間を改善します。
Squidにはさまざまな設定があり、優れたサーバーアクセラレータです。 LANプロジェクトとWANプロジェクトの両方に適しています。 多くの場合、サーバーソフトウェアの複合体では、LAMP Squidを使用してWebキャッシュを整理します。 これは、厳しい環境で高いプロジェクト可用性を提供する高性能ソリューションです。
Nginx-リバースプロキシ、ロードバランサー、HTTPキャッシュ、Webサーバー
Nginxは、リバースプロキシサーバー、ロードバランサー、SSLアンローダー、およびHTTPキャッシュとして機能できる無料のWebサーバーです。 Nginxは、既存のすべてのサイトの中で2番目に広く使用されているWebサーバーとして認識されています。 Nginxは、Apache Webサーバーのパフォーマンスを向上させるために作成されました
Vulcand-ロードバランサー
Vulcandは、APIおよびマイクロサービスの作業を加速することを目的としたリバースプロキシです。 このプロジェクトのインスピレーションはHystrixです。 設定サブシステムとしてEtcdを使用するため、設定の変更はサービスを再起動することなくすぐに反映されます。 プロジェクトは活発に開発中です。
Træfɪk-リバースHTTPプロキシとロードバランサー
Træfɪkは、マイクロサービスの展開を簡素化するために設計された最新のリバースHTTPプロキシおよびロードバランサーです。 動的および自動構成では、Docker、Swarm、Kubernetes、Marathon、Mesos、Consul、Etcd、Zookeeper、BoltDB、Rest API、ファイルなどのサポートシステムを使用できます。
中継-ロードバランサー、アプリケーションレベルゲートウェイ、透過プロキシ、SSL / TLSゲートウェイ
relaydプロジェクトは、relaydとhttpdで構成される安全なWebエンジンの無料実装です。
RelaydはOpenBSD 4.1で初めて登場し、OpenBSDパケットフィルター(pf)を使用してサーバー負荷分散(SLB)を整理するのに役立つサービスの役割を果たしました。 ピエール・イヴ・リチャードとレイク・フローターによって書かれました。 HTTPサーバーhttpdはOpenBSD 5.6に登場し、リレーされたコードに基づいていました。 開発者は、Rake Flotter、Sebastian Benoit、Florian Obser、およびさまざまなOpenBSD愛好家です。
Relaydはいくつかの大規模なサイトで使用され、さらにさまざまなオペレーティングシステムに移植されています。
まとめ
ここでは、便宜上、前述のWebアクセラレータに関する簡単な情報と、それらに関する追加情報を示します。
プロジェクト
| 言語
| OS
| 主な機能
| 免許
| 商用サポート
|
ワニス
| C
| BSD、Linux、Unix
| HTTPアクセラレーター
| 2節のBSD
| はい
|
HAProxy
| C
| BSD、Linux、Unix、Aix、Solaris
| TCPおよびHTTPアクセラレーター、ロードバランサー、プロキシサーバー
| GPL v2
| いや
|
イカ
| C / C ++
(イカ3) | BSD、Solaris、Linux、OS X、Windows
| Webキャッシュとプロキシ
| GPL v2
| いや
|
Nginx
| C
| LinuxおよびUnixライクなシステム、BSD、Windows
| リバースプロキシサーバー、ロードバランサー、HTTPキャッシュ
| 2節のBSD
| はい
|
ヴルカンド
| 行く
| LinuxおよびUnixライク
| ロードバランサー
| Apache v.2
| いや
|
トレフク
| 行く
| LinuxおよびUnixライク
| ロードバランサーとリバースHTTPプロキシサーバー
| MIT
| いや
|
中継された
| C
| OpenBSD FreeBSDおよびその他
| ロードバランサー、アプリケーションレベルゲートウェイ、トランスペアレントSSL / TLSプロキシゲートウェイ
| ISC
| はい
|
このコレクションであなたに適したものを見つけて、Webプロジェクトをスピードアップできることを願っています。 そして、あなたのサイトがすでに生産性の高さに達しているなら、私たちはあなたがこれをどのように達成したかについての物語を待っています。