Apache web server supports IPv6 native by maintainers since 2.0.14. Available patches for the older 1.3.x series are not current and shouldn't be used in public environment, but available at KAME / Misc.
Note: virtual hosts on IPv6 addresses are broken in versions until 2.0.28 (a patch is available for 2.0.28). But always try latest available version first because earlier versions had some security issues.
Listen [2001:0db8:100::1]:80 <VirtualHost [2001:0db8:100::1]:80> ServerName ipv6only.yourdomain.yourtopleveldomain # ...sure more config lines </VirtualHost>
Listen [2001:0db8:100::2]:80 Listen 18.104.22.168:80 <VirtualHost [2001:0db8:100::2]:80 22.214.171.124:80> ServerName ipv6andipv4.yourdomain.yourtopleveldomain # ...sure more config lines </VirtualHost>
This should result after restart in e.g.
# netstat -lnptu |grep "httpd2\W*$" tcp 0 0 126.96.36.199:80 0.0.0.0:* LISTEN 12345/httpd2 tcp 0 0 2001:0db8:100::1:80 :::* LISTEN 12345/httpd2 tcp 0 0 2001:0db8:100::2:80 :::* LISTEN 12345/httpd2
For simple tests use the telnet example already shown.
Apache2 supports a method called ”sendfile” to speedup serving data. Some NIC drivers also support offline checksumming. In some cases, this can lead to connection problems and invalid TCP checksums. In this cases, disable ”sendfile” either by recompiling using configure option ”--without-sendfile” or by using the "EnableSendfile off" directive in configuration file.