また、サイトの速度パフォーマンスについて

うーん...ようやく私は最初の投稿を書くことにしました。

この投稿では、サイトの読み込みを高速化するための簡単で効果的な方法について説明します。
すべてのメソッドはLAMP + nginx + drupalに基づいていますが、これは他のすべての場合にも当てはまると確信しています。
サイトの最初の読み込み、つまり、クライアントのブラウザにキャッシュがまだない場合について説明します。

記事の中で参照するいくつかのイラスト:
名前はアルト(左から右、上から下)に書き込まれます。
投稿の下部にあるすべてのリンク






主なものはサイズではなく量©

1.サイトへのリクエスト(リクエスト)の数が少ないほど良い!

を見ます 3
秒単位の時間、これはadsl行2.5Mb
では、何がありますか? 37のクエリと18秒があります。 時間。 たくさん!
最初の要求はhtml自体です
(HTMLが1秒未満で配信される場合-コード最適化について考えるのは時期尚早だと思います)
その後、CSS、JS、写真に行きました
画面からわかるように、写真は平行して表示されますが、cssとjs はそうではありません
結論:cssおよびjsに対するリクエストの数を減らす
5番目のDrupalでは、1つのファイル内のcss圧縮チップがビルドインです。つまり、パフォーマンスに移動して設定するだけです。

写真をご覧ください 1
9つのファイル要求と6秒の代わりに。 1つのリクエストと1.5秒の時間を取得します。 悪くない... :)
今度はjsの番です。
javascript_aggregatorモジュールをダウンロード-インストールし、パフォーマンスの面でもjsに同じチップを取得
写真をご覧ください 6そして、すべてのjsファイルに1.5秒しかかからないことがわかります。 同じ6秒の代わりに。 かなり良い... :)

また、サイトに多くの同様の画像(アイコン、ピクトグラム)がある場合、リクエストの数に追加することもできます
CSSスプライトに注目する価値があります。 つまり、これらのすべての画像が1つのファイルに連続して押し込まれ、その後、オフセットのためにcssでオフセットが実行されます。 その結果、5〜10ではなく1つのクエリがあります。

upd:同志からのヒント Chapaev- 「また、すべてのインターフェース写真を1つにまとめることができます-ImageBundles

そして最後に、もしあなたがdiggレベルのウェブサイトを持っているなら、すべてのcssとjsをhtmlにインラインで挿入すれば、これはさらに2-3リクエストを保存します。 (はい、キャッシュされていませんが、より高速です。画像が既にキャッシュにある場合、インクルードを使用して内部ページに挿入できます)

以下に、jsとcssを1つのファイルに入れる方法を示します。
 <!-/ *
関数t(){}
 <!-* /
 <!-body {background-color:Aqua;  }
詳細は以下のリンクをご覧ください。

ちなみに、ここハブでcssとjsを圧縮する圧縮スクリプトを実行しました


2.提供するすべてのコンテンツをクリックします!

あらゆる種類のob_start( "ob_gzhandler")を忘れてください。

Webサーバーですべてを自動的に圧縮できるのに、なぜphpと自分に負担をかけるのですか?
\ enable mod_deflateまたはmod_gzipをapacheに有効化するだけです! すべてのコンテンツが自動的に圧縮されます(ほぼ:))。
(このステートメントは、Apache設定にアクセスできる場合にのみ正しいです)
を見て比較します。 3および図6 (最初の要求)
1つのケースでは22kb、もう1つのケースでは6kb。 ほぼ4回!


3. PHPアクセラレータを忘れないでください

xcache、eAccelerator、APC

小さなはい削除©

4.クライアントに静的なApacheを与えないでください!

このモンスターは重い負荷の下でひどく遅くなり始めます。
画像(および同じCSS、JS、フラッシュなど)をアップロードするには、 nginx Webサーバーを使用します
設定には3つのオプションがあります。
1つのオプション:
マニュアル
統計用の個別のサブドメイン(例: i.zoza.ru
プラス:
•すべてが正常に機能するという自信(Apacheは引き続き直接リクエストを受信します)
•簡単なセットアップ
短所:
•2つのIPが必要です(Apache用とnginx用、両方ともポート80にあります。一部の管理者はポート80以外のすべてをカットするため)
•テンプレートを編集し、サブドメインへのパスを規定する必要があります

2オプション:
フロントエンドのように
マニュアル
プラス:
•異なるポート上の1つのIPアドレス
•テンプレート内の何も変更しないでください
短所:
•多くのリソース(Apacheに加えて2番目のサーバーにも)
•環境変数は「嘘をつく」ことができます。 (たとえば、ApacheクライアントのIPアドレスはnginxアドレスになりますが、これは扱われます)

3オプション:
メイン(単一)Webサーバーとして
プラス:
•Apacheを完全に削除します(サーバーが必要とするメモリが少なくなります)
•1つのIPアドレス
•テンプレート内の何も変更しないでください
短所:
•Apache用にのみ研ぎ澄まされたものが機能しない


私は多くのことを逃し、それを終えなかったと確信していますが、すでに「たくさんの手紙」。 だからコメントで尋ねる-私は答えます。

広告
www.eaccelerator.net
rakaz.nl/item/make_your_pages_load_faster_by_combining_and_compressing_javascript_and_css_files
drupal.org/project/javascript_aggregator
blogs.msdn.com/shivap/archive/2007/05/01/combine-css-with-js-and-make-it-into-a-single-download.aspx
sysoev.ru/nginx
csssprites.com
www.drupal.ru/node/8304
developer.yahoo.com/performance/rules.html
hostingfu.com/article/running-drupal-with-clean-url-on-nginx-or-lighttpd
sittinginoblivion.com/node/251

PS。 私は自分のブログに書いて、他の場所に行くことはできません- 鼻のカルマで出かけませんでした。 :)
Web開発に移行しました。 カルマに感謝します! :)

UPD:人々!!! 男! この投稿は、少し考えることさえできる人に役立ちます
これらのことをよく知らない人のために、彼は知りたいと思っています。
私は、検索を開始しました。いわば、「必要なキーワードを無視しました」。 PHPアクセラレーションのようなものがあることを知りませんでした-GoogleでxcacheまたはeAcceleratorを入力しましたが、すべてが既にわかっています。
またはnginxの設定-はい、このトピックに関する多くの記事がneteにあります。
またはmod_deflate。

Source: https://habr.com/ru/post/J19691/


All Articles