ホームページ > バックエンド開発 > PHPチュートリアル > PHPサイトのトップページが開けない原因についてお話します

PHPサイトのトップページが開けない原因についてお話します

WBOY
リリース: 2016-06-23 13:16:26
オリジナル
1102 人が閲覧しました

最近、Web サイトのホームページが開けなくなり、写真のように nginx から直接返される 504 エラーが報告されることがあります。


今日の午後16時頃に再び現れました。Alibaba Cloudデータベースの接続を確認したところ、実際には夕方2時に一度現れました。この画像は、問題が解決され、データベース接続要求の数が減少した後に取得されたものです。



現在、データベースに大きな負荷がかかっているようです。データベース サーバーには複数のライブラリが同時にオンラインになっているため、データベースをダウンさせているのが他のシステムなのか、それとも現在のシステムなのかはわかりません。システム。


ステートメントを使用してデータベース内のセッション数をクエリします

SQLSERVER 現在の接続数を表示します
Select * from sys.dm_exec_connections -- このコマンドは、接続されているユーザーの数を確認できます
Select * from sys.dm_exec_sessions --このコマンドは、セッションの数を確認すると、1 つの接続で複数のセッションを持つことができます


この図から、以前に 504 を報告した Web サイトにはデータベースへのリクエストが大量にあることが大まかに判断できます。


特定のアプリケーションを見つけたら、対応するサーバーに移動してさらに確認できます

最初にCPUを確認するのは比較的一般的です



次にPHP-FPMプロセスの数を確認します


通常 この場合、PHP プロセスは 10 個程度しかありませんが、突然これだけ多くのプロセスが存在するということは、間違いなく外部からのリクエストが大量にあることを意味します。


しかし、プロセスの終了を妨げる例外が php にあるかどうかを判断するために、すべてのプロセスを終了し、php-fpm を再起動しました。

その後すぐに多くのプロセスが出現したことが判明したので、次の結論を導き出すことができます。これは、nginx が 504 を報告する理由は、外部リクエストが継続的に発生しており、データベースに多大な負荷がかかり、リクエストを処理できなかったことを示しています。受信したため、nginx は 504 を報告します。


次に、この時点で nginx ログの最後の 500 個のデータを確認します

#tail -n 500 /usr/local/nginx/logs/access.log >>500_20160218-1712.txt


ログから、Baidu と Sogou のスパイダーが常に巡回していることがわかります。Baidu は比較的安定しており、Web サイトのトラフィックが急激に増加することはないとも言われています。ウェブサイトがクロールされないようにアクセス頻度を制御します。

その後のログを見ると、この期間に Sogou を巡回しているスパイダーの数が非常に多かったことがわかりました。スパイダーはクラスターを形成して巡回しているため、nginx でリクエスト ヘッダーをブロックするしかありません。 。

server {	listen       80;	root        /www/;	index  index.php;	#禁止特定爬虫的抓取	if ($http_user_agent ~* "Sogou web spider") {	 return 403;	}
ログイン後にコピー

その後、php プロセスを再度終了し、php プロセスを開始すると、プロセス全体が非常に安定しており、10 で維持されていることがわかります。 Sogou にはまだ多くのユーザー ベースが存在しないため、この問題から非常に重要な結論が導き出されます。ウェブサイトは、このような予期せぬ事態に遭遇する可能性があるため、現在は安定しています。


Sogou をブロックする前:


Sogou をブロックした後:

以下は、nginx ログから分析されたさまざまなスパイダーによって分析された Web サイトのクローリング データの上位ランキングです。 Google など、ほとんど役に立たない多くのクローラーがクロールしていますが、まだ多くのクローラーがクロールしています:


Sogou が 1 日でかなり怖がっていることがわかります。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート