====== Apache ====== ==== utils ==== * vlogger: http://n0rp.chemlab.org/vlogger * webalizer: http://www.mrunix.net/webalizer ===== optimization ===== * **disable DNS Look Up** * **MaxClients** ( 512 ) * **KeepAlive** * Disable KeepAlive connections (by setting KeepAlive to Off) * Shorten the KeepAliveTimeout value to something like 3 seconds for instances), reducing the maximum simultaneous opened connections to 768 * **Compress HTTP Content** * **Turn off unwanted services** - There are a few services and/or features that you will want to turn off or not allow. All of these services can be disabled in the httpd.conf file. Those services/features that could cause the most issues include: * Directory browsing. This is done within a directory tag (the document root is a good place to start) using the Options directive and is set with “-Indexing”. * Server side Includes. This is another feature that is disabled within a directory tag (using Options directive) and is set with “-Includes”. * CGI execution. Unless your site needs CGI, turn this off. This feature is also set within a directory tag using the Options directive, with “-ExecCGI”. * Symbolic links. Set this inside a (surprise, surprise) directory tag with “-FollowSymLinks”. * None. You can turn off all options (in the same way you set the above) using “None” with the Option directive. * **Disable unused modules** * **Restrict access** Order Deny, Allow Deny from all Allow from 192.168.1.0/16 * **Limit request size** - Denial of service attacks are always a possibility when you allow large requests on Apache. Apache has a directive, LimitRequestBody, that is placed within a Directory tag. The size of your limit will depend upon your Web site’s needs. By default, LimitRequestBody is set to unlimited. * **Hide Apache’s version number** ServerSignature Off ServerTokens Prod TraceEnable Off in ssl.conf SSLProtocol -ALL +SSLv3 +TLSv1 SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM in vhost Include conf/ssl.conf RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F] * **Disable unnecessary PHP variable** allow_call_time_pass_reference = Off magic_quotes_gpc = Off register_long_arrays = Off register_argc_argv = Off allow_url_fopen = Off expose_php = Off disable_functions = symlink,shell_exec,proc_close,proc_open,dl,passthru,escapeshellarg,escapeshellcmd,openlog, apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,virtual, phpinfo ===== mod_deflate (Apache2) ===== also see: [[http://www.howtoforge.com/apache2_mod_deflate|HowtoForce - ModDeflate]], [[http://pflanze.mine.nu/~chris/mod_deflate/mod_deflate_readme_EN.html|mod_deflate]] # Insert filter SetOutputFilter DEFLATE #DeflateFilterNote ratio #DeflateCompressionLevel 9 # Netscape 4.x has some problems... BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48 # the above regex won't work. You can use the following # workaround to get the desired effect: BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html # Don't compress images SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary This configuration will compress everything except for images. Of course, you can’t test this with curl, but you can test it with Firefox and [[https://addons.mozilla.org/en-US/firefox/addon/3829|LiveHTTPHeaders]]. If you don’t have Firefox handy, you can try a very handy **[[http://www.gidnetwork.com/tools/gzip-test.php|web application]]** that will give you the statistics about the compression of your site’s data. deflate.load header.load = SSL = http://www.mail-archive.com/modssl-users@modssl.org/msg10790.html\\ ssl.conf\\ #SSLSessionCache shmcb:/var/run/apache2/ssl_scache(512000)\\ SSLSessionCache dbm:/var/run/apache2/ssl_scache\\ SSLSessionCacheTimeout 300\\