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