Slide 1
The Internet’s most trafficked site
25 countries, 13 languages
Yahoo! by the Numbers
This talk is about yapache
The Server Header
The HTTP “Server” header
Suppressing the Server header
Why does Y! suppress “Server”?
Reason 1
Reason 2
Reason 3 (the real reason)
Apache 1.3
Yes, we’re still using Apache 1.3
What’s Wrong With Threads?
The prefork MPM R00LZ!!!1!1!
Logfiles
Common Log Format
Problems with Common Log Format
Problems with CLF (cont’d)
yapache Access Log
Access Log Format
Signal-free Log Rotation
Bandwidth Reduction
Smaller 30x response bodies
Apache/1.3 on-the-fly gzip
Not for the faint of heart
How Many Servers?
How Many Servers?
There Can Be Only One
Constant Pool Size is Good
Constant Pool Implementation
Waiting for the Client Sucks
Let the kernel do the buffering
Accept Filtering on FreeBSD
SendBufferSize
NO_LINGCLOSE
Hostname hacks
YahooHostHtmlComment
ap_finalize_request_protocol() patch
http://foo.yahoo.com/bin/hostname
SSL
SSL Acceleration
SSL Architecture
mod_stunnel: Apache+stunnel glue
Kicking the Bucket
Avoid mod_whatkilledus.c
Corefiles w/o CoreDumpDirectory
Don’t multi-signal in reclaim_child_processes()
Misc
The Include directive
setproctitle() in child_main()
ysar - inspired by System V sar(1)
Summary
Take-aways
Slides: http://public.yahoo.com/~radwin/