GNU/Linux >> Linux の 問題 >  >> Linux

一般的なサーバーの問題と解決策

オンライン サーバーの最も一般的な用途の 1 つは、Web サイトをホストすることです。これは、特にコンテンツ http を提供するソフトウェアによって可能になります。この投稿では、GNU/Linux である Web サービス システムの問題を検出して修復するためのいくつかのトリックについて説明します。簡単にするために、最も一般的に使用されている apache に焦点を当てます。

通常、Web サーバーに問題が発生したときに最初に受け取るニュースは、ブラウザーがコンテンツを表示できないということです。サーバーに入る前に、問題が DNS であるかどうか、およびドメイン名が Web サーバーの IP に解決されないためかどうかを確認する必要があります。これは、手元にあるものに応じて、ping、host、nslookup dig などのアプリケーションを使用して確認できます。
DNS ドメインが機能し、IP Web サービスを指していることが確実な場合は、管理者としてこれにアクセスして、問題が何であれ把握して解決してください。

ぼろぼろに入る前に、最初の情報として、http プロトコルがサーバーのポート 80 で動作していると言います。これは重要な事実です。なぜなら、実行中のプロセスに関するデータを簡単に取得できることを知っているからです。サーバー:

示されているように、「grep」コマンドと一緒に使用して、「LISTEN」と「80」でフィルタリングすると、ポート 80 でリッスンし、サービス「httpd」を使用するプロセスがあるかどうかが表示されます。 「|」を削除する場合grep LISTEN」コマンドを実行すると、そのポートでまだアクティブな接続も表示されます。その中には、確立された接続、保留中または閉じられた接続があります。

さらに、ユーザーと実行中のプロセスの数に関するさらに多くの情報を表示できる「lsof」というコマンドもあります。このコマンドは、Linux システムで開いているファイルに関する情報を表示します。これは、すべてがファイルを介して機能するため、非常に便利です。この場合、ポート 80 に関連する開いているファイルを探すように指示する必要があります。これを行うには、管理者ユーザーとしてシステム内で「-i 80」を指定します。

上記は、誰もホストされたページを監視していないサーバーの通常の出力です。ここでは、プロセスを実行しているユーザーが「apache」であり、コンテンツを提供するためにリクエストが来るのを待っている親プロセスと 6 つの子プロセスがあることを確認できます。誰かが表示されているページをさらに検索すると、「LISTEN」が表示され、とりわけ接続のソースが示されます。

サーバーが上記のコマンドのいずれかでポート 80 で実行されているプロセスを確認できない場合は、Web サービスが正常に機能していないことを示しているため、再度開始する必要があります。これは、名前を使用してどの Linux ディストリビューションを使用するかによって異なります。または、Redhat および Centos に基づく他のディストリビューションは「httpd」で作成され、Debian に基づくものは Ubuntu として「apache2」で作成されます

私たちの場合、httpd は Centos であり、Web サーバーが正しく起動されているため、httpd を使用します。実行中のプロセスがあるかどうかを確認し、ブラウザーでサイトを再度視覚化しようとします。

unbootable の場合、多くの可能性があるため、詳細に分析して何が起こるかを正確に判断するエラーメッセージが表示される場合があります。また、エラー ログを調べて、指示メッセージが残っているかどうかを確認する必要があります。これは、cat または tail コマンド、または vim、nano、または emacs などの任意のコンソール テキスト エディターで実行できます。

上記の非常に便利なアプリケーションは「tail」です。後ろに「-f」を使用すると、ログをリアルタイムで表示できます。例:

tail -f /var/log/httpd/error_log

コンソールで実行したままにし、もう一方がサービスを開始しようとしたり、ブラウザにアクセスしたりすると、リアルタイムでエラーを確認できます。これは非常に便利です。
Web サーバーが起動し、正常に動作しているように見える場合があります。
このような場合、何が起こるかを確認するには、上記のようにエラー ログを確認することが優先されます。エラー ログは通常、エラー ログに表示されます。操作を妨げる問題の詳細情報。エラーが表示された後、エラーであることがわかっている場合を除き、Google などの検索エンジンを使用して、このエラーに関する情報と修正方法を取得するのが通常です。それでもメッセージが表示されない場合は、Web サーバーのすべてのインスタンスを停止し、デバッグ モードで起動する必要があります:

httpd -e デバッグ

これにより、解決に役立つ内部エラーを確認できるようになります。いずれにせよ、これらの手順をすべて実行しても Web サーバーを実行できない場合は、問題を迅速かつ効率的に解決できる専門家に相談することをお勧めします。
最後に、最も一般的な問題のリストを掲載します。 Web サービスを削除する時間を見つけることができる間違いと、それらを修正する方法のいくつかのアイデア。問題が Web 構成または別のバックエントランス用に残したコードである場合に、ログに記録される可能性があるエラー。

1. 「make_sock:could not bind to address 0.0.0.0:80 no listen sockets available」
Web サービスの開始時にこのエラーが表示された場合は、ポート 80 でリッスンしているものがあるため、Web サービスが既に動作している可能性があります。問題がある場合は、最初に「service httpd/apache2 stop」で停止しようとしますが、それでもなお、同じミスにより、ポート 80 を占有しているプロセスを強制終了する必要があります。lsof または netstat コマンドで最初に説明した番号 pid を取得し、「kill - s 9" pid コマンド" で強制的に停止します。

2. 「そのようなファイルまたはディレクトリはありません:apache2:エラー ログ ファイル /var/log/apache2/error.log を開けませんでした」
このエラーにより、Web サーバーは、開始時に割り当てられたログに書き込めなかったことを示しますフォルダーが存在しないか、ファイルを作成できないか、ファイルは存在するが許可/ユーザーが正しくないため、構成が正しくありません。これを解決するには、これらすべての要因を分析し、Web サーバー ユーザーがそのファイルに書き込み、プロセスを再起動できるようにする必要があります。

3. 「httpd を開始しています:/etc/httpd/conf/httpd.conf の xxx 行で構文エラーが発生しました:DocumentRoot はディレクトリでなければなりません」
エラーによって、正確なポイント構成 Web サービスにリダイレクトされることがあります。その場合、問題の構成ファイルをチェックし、示された行で正確に失敗する可能性があることを分析します。この場合、Web サーバーのルートである「DocumentRoot」は、ポイント 2 のソリューションと同様に、これによってアクセスできませんでした。


Linux
  1. OpenStack Nova Serviceのインストールおよび設定中の一般的なエラー(および解決策)のリスト

  2. OpenStack Image Serviceのインストール中の最も一般的なエラー(および解決策)のリストGLANCE

  3. WindowsServerネットワークの問題のトラブルシューティング

  1. スナップショットの作成と管理

  2. Vhostsとサーバーブロックの基本

  3. 500内部サーバーエラーとは何ですか

  1. IISをインストールし、Webサイトを構成します

  2. システムディスクとデータディスクに関するFAQ

  3. sort と comm の使用に関する問題