1.1. 使用 netstat -a 檢查 connections 連線狀態
連續出現一堆:
TCP xms:http XXX.XXX.XXX.XXX:3709 ESTABLISHED
TCP xms:http XXX.XXX.XXX.XXX:4960 ESTABLISHED
TCP xms:http XXX.XXX.XXX.XXX:10350 TIME_WAIT
TCP xms:http XXX.XXX.XXX.XXX:10444 FIN_WAIT_2
TCP xms:http XXX.XXX.XXX.XXX:11433 ESTABLISHED
TCP xms:http XXX.XXX.XXX.XXX:11439 FIN_WAIT_2
TCP xms:http XXX.XXX.XXX.XXX:11445 TIME_WAIT
TCP xms:http XXX.XXX.XXX.XXX:11528 FIN_WAIT_2
TCP xms:http XXX.XXX.XXX.XXX:12572 ESTABLISHED
TCP xms:http XXX.XXX.XXX.XXX:12578 FIN_WAIT_2
TCP xms:http XXX.XXX.XXX.XXX:12591 TIME_WAIT
TCP xms:http XXX.XXX.XXX.XXX:12656 FIN_WAIT_2
TCP xms:http XXX.XXX.XXX.XXX:13533 ESTABLISHED
TCP xms:http XXX.XXX.XXX.XXX:13619 ESTABLISHED
TCP xms:http XXX.XXX.XXX.XXX:13620 ESTABLISHED
TCP xms:http XXX.XXX.XXX.XXX:13621 ESTABLISHED
TCP xms:http XXX.XXX.XXX.XXX13633 ESTABLISHED
TCP xms:http XXX.XXX.XXX.XXX:13662 ESTABLISHED
TCP xms:http XXX.XXX.XXX.XXX:13663 ESTABLISHED
TCP xms:http XXX.XXX.XXX.XXX:13665 ESTABLISHED
...
1.2. Apache error logs 出現:
[Fri Dec 14 15:37:03 2007] [warn] (OS 121)信號等待逾時。 : winnt_accept: Asynchronous AcceptEx failed.
[Fri Dec 14 15:37:03 2007] [warn] (OS 64)指定的網路名稱無法使用。 : winnt_accept: Asynchronous AcceptEx failed.
[Fri Dec 14 15:37:03 2007] [warn] (OS 64)指定的網路名稱無法使用。 : winnt_accept: Asynchronous AcceptEx failed.
[Fri Dec 14 15:37:03 2007] [warn] (OS 64)指定的網路名稱無法使用。 : winnt_accept: Asynchronous AcceptEx failed.
[Fri Dec 14 15:37:03 2007] [warn] (OS 64)指定的網路名稱無法使用。 : winnt_accept: Asynchronous AcceptEx failed.
[Fri Dec 14 15:37:03 2007] [warn] (OS 64)指定的網路名稱無法使用。 : winnt_accept: Asynchronous AcceptEx failed.
造成 httpd.conf 預設 ThreadsPerChild 用完, 而無法連線
ThreadsPerChild 250
2. 解決方法
2.1. 開啟 C:\XMS\apache\httpd.conf (大約257 行)
如下所示, 加入紅色字, 其中XXX.XXX.XXX.XXX是欲阻擋的 IP
...
<Directory "C:/XMS/www">
Options FollowSymLinks MultiViews ExecCGI
AllowOverride All
Allow from all
Deny from XXX.XXX.XXX.XXX
</Directory>
2.2. 修改後存檔, 然後至控制台重新啟動 「Apache2」 服務