web-dev-qa-db-ja.com

ボットによるサーバーのオーバーヘッド

オーバーヘッドの原因となる顧客Webサイトが1つあります(http://www.modacalcio.it/en/by-kind/football-boots.html)。

htopを開いた状態でWebサイトをナビゲートしようとしていますが、Webサイトの左側にあるajaxリンクによってWebサイトの多くの負荷がかかっています。

ウェブサイトは、3 procと2GB RAMを備えたVPSでホストされ、十分なハードディスク容量があります。

本当の問題は、このWebサイトが新しく、あまりアクセスされていないことです。

Http-statusモジュールから、オーバーヘッドはボット(Googleボット、Bingボット、hrefsチェッカーなど)によって引き起こされることがわかります。

だから私は、おそらくそれらのすべてのリンクを一度にクロールしようとしているクモが原因だと思った-これがこのオーバーヘッドを引き起こしているのだろうか?

また、これらのリンクにrel="nofollow"を挿入しましたが、これはボットを遠ざけません。

これらのボットへのリンクを無効にするためのコードまたはPleskを使用する方法はありますか?

1
giuseppe

オーバーヘッドは、データとその提供方法が原因である可能性があります。

here のような診断を実行すると、このページに対する各リクエストが150 MBの個別のリクエストになり、ページサイズが2.2MBを超え、ロードに最大9秒かかることが示されました。ヘッダーを見ると here で、Cache-ControlとPragmaでno-cacheが指定されているようです。

HTTPキャッシュを有効にし、Nginxサーバーでgzip圧縮を使用することもできます(ヘッダーとしてサーバーとして示されています)。詳細はこちらをご覧ください: nginxでHTTPキャッシュとgzipを設定する こちらのGoogle記事もご覧ください: gzip圧縮の仕組み

また、サーバーの コアモジュール構成 を確認して、 keepalive_disablenoneに設定され、 keepalive_requests が設定されていることを確認することもできます。少なくともデフォルト数(100)まで。 PleskのApacheの場合、 this threadが役立ちます。

これらの変更後にシステムのリソースを監視すると、VPS構成が十分であるか、アップグレードする必要があるかがわかります。

それでもロボットがリンクをクロールしないようにする場合は、 here のように、robots.txtファイル内でリンクを禁止として指定します。

0
dan