Q. I've installed Apache 2.2 from FreeBSD 7.0 ports and when I try to start I get following warning on screen:
Performing sanity check on apache22 configuration:
Syntax OK
Starting apache22.
[Wed Sep 17 22:01:58 2008] [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter
How do I fix this error?
A. FreeBSD has special driver called accf_http. It will buffer incoming connections until a certain complete HTTP requests arrive to speed up and optimize performance.
The utility of accf_http is such that a server will not have to context switch several times before performing the initial parsing of the request. This effectively reduces the amount of required CPU utilization to handle incoming requests by keeping active processes in preforking servers such as Apache low and reducing the size of the file descriptor set that needs to be managed by interfaces such as select(), poll() or kevent() based servers.
Just open shell prompt and type the following command to load accf_http under FreeBSD :
# kldload accf_http
Restart apache:
# /usr/local/etc/rc.d/apache22 restart
Update /boot/loader.conf file
Type the following command so that driver get loaded at the time of booting system:
# echo 'accf_http_load="YES"' >> /boot/loader.conf
A note about FreeBSD jails (vps)
Under jail you cannot load this module. It needs to be loaded from host using above command.
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- My 10 UNIX Command Line Mistakes
- 10 Greatest Open Source Software Of 2009
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
- Email FAQ to a friend
- Download PDF version
- Printable version
- Comment RSS feed
- Last Updated: 01/17/09




{ 3 comments… read them below or add one }
Is there any other linux distro with this option? Or a “accf_http like” way for red hat, or ubuntu? I’m asking this question, having in mind the slowloris attack.
Noop, there is not such thing for Linux. Set your apache timeout to 30, use iptables to limit connection per IP, there is also unoffical patch that changes Timeout on fly.
I have done the above, but whenever I get a graceful restart request during log rollovers, I am still getting the error.. additionally, my Apache is segfaulting after every graceful restart.
Any suggestions?