広告 Apache

Webサーバー障害発生時の対処例

Webページに接続ができないと問い合わせがあったり、監視サーバからアラートメールが飛んできた場合の対応法の一例を紹介します。

単純にhttpdが落ちてしまった場合

下記のコマンドを実行し、Apache(Webサーバ)が正常に動作しているか確認します。

[root@hoge ~]# ps ax | grep http
  28878 ?        Ss     0:02 /usr/local/apache2/bin/httpd -k start
  29180 ?        S      0:02 /usr/local/apache2/bin/httpd -k start
  29183 ?        S      0:02 /usr/local/apache2/bin/httpd -k start
  29357 ?        S      0:05 /usr/local/apache2/bin/httpd -k start
  32430 pts/2    S+     0:00 grep http

上記のように httpd のプロセスが表示されない場合は Apache が停止しています。

下記のコマンドを実行し、Apacheを起動させてください。

# apachectl start
# systemctl start httpd.service

apachectl を実行した際、下記のようなエラーが出た場合

[root@hoge ~]# apachectl
  -bash: apachectl: command not found

以下のコマンドを実行してフルパスを確認して

[root@hoge ~]# locate apachectl
/usr/local/apache2/bin/apachectl

フルパスでコマンドを実行してください。

# /usr/local/apache2/bin/apachectl start

TIME_WAIT対策

httpd のプロセスが生きているのに http 接続が接続できない時、TIME_WAITが発生して いる可能性があります。

/etc/sysctl.confの設定を変更し、経過を観察します。

[root@hoge ~]# cp /etc/sysctl.conf /etce.sysctl.conf.${date +%Y%m%d}
[root@hoge ~]# vi /etc/sysctl.conf
---
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_keepalive_time = 20
net.ipv4.tcp_keepalive_probes = 4
net.ipv4.tcp_keepalive_intvl = 5
---

変更を反映させます。

# sysctl -p

Sponsor Link

-Apache
-