N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N...
Transcript of N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N...
![Page 1: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/1.jpg)
/
N Things You Didn’t Know You Could Do With Apache
Tek11, 2011, Chicago
Rich [email protected]
N=29Thursday, May 26, 2011
![Page 2: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/2.jpg)
1FallbackResource (2.2.12 and later)
Thursday, May 26, 2011
![Page 3: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/3.jpg)
The old way
RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_URI} \ (alias1|alias2|special|other) [NC]RewriteRule . index.php [PT]
Thursday, May 26, 2011
![Page 4: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/4.jpg)
2.2 and later
• Adds a Fallback in the case that there’s no suitably named file
• Like ErrorDocument, except it’s not an error
Thursday, May 26, 2011
![Page 5: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/5.jpg)
Long, long ago ...
• Anything that doesn’t match a file or directory
• or a list of special URIs that we want to protect
• send to the “front controller” or “handler”
RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_URI} \ (alias1|alias2|special|other) [NC]RewriteRule . index.php [PT]
Thursday, May 26, 2011
![Page 6: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/6.jpg)
However
• Slow
• Fragile
• Can break relative links, embedded files, etc
Thursday, May 26, 2011
![Page 7: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/7.jpg)
In the future ... uture ... uture
• Server administrators will just put one line in the global config
• Nobody will need to touch .htaccess files
FallbackResource /index.php
Thursday, May 26, 2011
![Page 8: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/8.jpg)
Where useful
• Practically every web app uses this technique
• Wordpress
• Drupal
• Joomla
• Habari
• etc ...
Thursday, May 26, 2011
![Page 9: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/9.jpg)
2server-info?config
Thursday, May 26, 2011
![Page 10: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/10.jpg)
server-info?config
Thursday, May 26, 2011
![Page 11: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/11.jpg)
What’s in there?
• All your configuration settings
•What file they live in
•What order they are applied
Thursday, May 26, 2011
![Page 12: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/12.jpg)
Also ...
• Other available arguments ...
Thursday, May 26, 2011
![Page 13: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/13.jpg)
/server-info?list
Thursday, May 26, 2011
![Page 14: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/14.jpg)
/server-info?mod_log_config.c
Thursday, May 26, 2011
![Page 15: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/15.jpg)
... and
• ?hooks - lists hooks and which modules are attached to them
• ?server - Same as httpd -V
Thursday, May 26, 2011
![Page 16: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/16.jpg)
3SNI
Thursday, May 26, 2011
![Page 17: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/17.jpg)
Common Wisdom
• You can't run name-based virtual hosts with SSL
• One SSL host per IP address
• Certificate is sent to the client *before* the client sends the HOST: header
Thursday, May 26, 2011
![Page 18: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/18.jpg)
SNI
• Server Name Indication
• ServerName and Certificate figured out prior to encryption
Thursday, May 26, 2011
![Page 19: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/19.jpg)
Listen 443NameVirtualHost *:443
SSLStrictSNIVHostCheck off
<VirtualHost *:443> DocumentRoot /www/example1 ServerName www.example.com</VirtualHost>
<VirtualHost *:443> DocumentRoot /www/example2 ServerName www.example2.org</VirtualHost>
Thursday, May 26, 2011
![Page 20: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/20.jpg)
<VirtualHost *:443> DocumentRoot /www/example2 ServerName www.example2.org
SSLCertificateFile /path/to/www.domain.com.cert SSLCertificateKeyFile /path/to/www.domain.com.key
</VirtualHost>
Thursday, May 26, 2011
![Page 21: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/21.jpg)
Browser Support
• Mozilla Firefox 2.0 or later
• Opera 8.0 or later (with TLS 1.1 enabled)
• Internet Explorer 7.0 or later (on Vista, not XP)
• Google Chrome
• Safari 3.2.1 on Mac OS X 10.5.6
Thursday, May 26, 2011
![Page 22: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/22.jpg)
Docs
• Best docs for this are in the wiki. Should be in the official docs soon
• http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI
Thursday, May 26, 2011
![Page 23: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/23.jpg)
4Per-module LogLevel configuration (2.4)
Thursday, May 26, 2011
![Page 24: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/24.jpg)
LogLevel debug (2.2 and earlier)
•mod_proxy is noisy
•Everything else lost in the noise
LogLevel Debug
Thursday, May 26, 2011
![Page 25: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/25.jpg)
LogLevel (2.3.6 and later)
LogLevel warn ssl:debug
Default Just this module
Thursday, May 26, 2011
![Page 26: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/26.jpg)
Trace
• Some modules have detailed trace information
• Replaces RewriteRule
2.2
2.4
RewriteLog /var/log/rewrite.logRewriteLogLevel 5
LogLevel warn rewrite:trace5
Thursday, May 26, 2011
![Page 27: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/27.jpg)
Log files
• Everything goes to the error log
• Think "debug log" instead
• Use grep to separate:
tail -f /www/logs/error_log | grep ‘rewrite:’
Thursday, May 26, 2011
![Page 28: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/28.jpg)
Error logs
• And error log formats are now configurable, too
• ErrorLogFormat much like LogFormat, with similar sprintf-like variables
• Most excitingly, %L is the log entry ID, and can be placed in the access log and error log, to correlate entries
Thursday, May 26, 2011
![Page 29: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/29.jpg)
5Expression evaluation (2.4)
Thursday, May 26, 2011
![Page 30: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/30.jpg)
Various syntaxes
•mod_rewrite, Directory, *Match, etc, various different syntaxes
• util_expr provides a consistent expression syntax
Thursday, May 26, 2011
![Page 31: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/31.jpg)
Examples
• <If> (See slides later)
• SetEnvIfExpr
• Regular expressions, backreferences, environment variable tests
Thursday, May 26, 2011
![Page 32: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/32.jpg)
Documentation
• Documentation is lacking. I hope to fix this in the coming weeks.
• Just a few modules use this syntax. This is expected to expand.
Thursday, May 26, 2011
![Page 33: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/33.jpg)
6IndexStyleSheet
Thursday, May 26, 2011
![Page 34: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/34.jpg)
Thursday, May 26, 2011
![Page 35: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/35.jpg)
IndexStyleSheet
IndexStyleSheet “/css/style.css”
Thursday, May 26, 2011
![Page 36: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/36.jpg)
Thursday, May 26, 2011
![Page 37: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/37.jpg)
Documentation
• http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html#indexstylesheet
• 2.2 and later
Thursday, May 26, 2011
![Page 38: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/38.jpg)
Now with extra class
Thursday, May 26, 2011
![Page 39: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/39.jpg)
And ...
• With HeaderName and ReadmeName, wrap all that content in whatever shell you want.
HeaderName /style/header.htmlReadmeName /style/footer.htmlIndexStyleSheet /style/style.css
IndexOptions FancyIndexing \ SuppressHTMLPreamble \ SuppressLastModified
Thursday, May 26, 2011
![Page 40: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/40.jpg)
7Proxy Balancer
Thursday, May 26, 2011
![Page 41: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/41.jpg)
mod_proxy_balancer
• One front end server running mod_proxy and mod_proxy_balancer
• Multiple backend servers running HTTP, FTP, or AJP protocol servers
Thursday, May 26, 2011
![Page 42: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/42.jpg)
Not that it’s related ...
Thursday, May 26, 2011
![Page 43: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/43.jpg)
He’s dead, Jim
• Does heartbeat, so that dead servers are removed
• Weighted traffic distribution
• Does sticky sessions (so that an established session always goes back to the same server)
Thursday, May 26, 2011
![Page 44: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/44.jpg)
mod_proxy_ajp
• Replaces mod_jk and all the other ajp protocol proxy servers
Thursday, May 26, 2011
![Page 45: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/45.jpg)
Balancer manager
• Relies on mod_proxy
• Gives a webby management interface for the proxy balancer
<Location /balancer-manager>SetHandler balancer-manager
</Location>
Thursday, May 26, 2011
![Page 46: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/46.jpg)
Thursday, May 26, 2011
![Page 47: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/47.jpg)
Example 1
<Proxy balancer://mycluster>BalancerMember http://1.2.3.4:8009 loadfactor=1BalancerMember http://1.2.3.5:8009 loadfactor=1# Less powerful server, don't send as many requests thereBalancerMember http://1.2.3.6:8009 loadfactor=5
</Proxy>
ProxyPass / balancer://mycluster/
Thursday, May 26, 2011
![Page 48: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/48.jpg)
Example 2
<Proxy balancer://hotcluster>BalancerMember http://1.2.3.4:8009 loadfactor=1BalancerMember http://1.2.3.5:8009 loadfactor=2# The below is the hot standbyBalancerMember http://1.2.3.6:8009 status=+HProxySet lbmethod=bytraffic
</Proxy>
ProxyPass / balancer://hotcluster/
Thursday, May 26, 2011
![Page 49: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/49.jpg)
Loadbalancer parameters
• Many loadbalancer parameter options
• See mod_proxy documentation for the full list
Thursday, May 26, 2011
![Page 50: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/50.jpg)
8<If> (2.4)
Thursday, May 26, 2011
![Page 51: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/51.jpg)
New in 2.4
• Wrap anything in a conditional block
• Evaluated at request time - performance implications
Thursday, May 26, 2011
![Page 52: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/52.jpg)
<If ...>
<If $req{Host} = ‘example.com’>Redirect / http://www.example.com/
</If>
Replaces Rewrite-based “canonical hostname” rules
Thursday, May 26, 2011
![Page 53: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/53.jpg)
Variables
$req$resp$env
Thursday, May 26, 2011
![Page 54: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/54.jpg)
IN
<If %{REQUEST_METHOD} IN GET,HEAD,OPTIONS>
Thursday, May 26, 2011
![Page 55: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/55.jpg)
9svn auto-commit
Thursday, May 26, 2011
![Page 56: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/56.jpg)
Ever wish life had an undo button?
Thursday, May 26, 2011
![Page 57: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/57.jpg)
Revision control everything!
<Location /dav> DAV svn SvnPath /path/to/svn/repos SVNAutoversioning On</Location>
Thursday, May 26, 2011
![Page 58: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/58.jpg)
R.C. for everyone
• Your users just mount this like a regular DAV share
• All file modifications generate an SVN commit
• Can always roll back to a previous version
Thursday, May 26, 2011
![Page 59: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/59.jpg)
Caveats
•MANY times more drive space required
• No commit messages
• Diffs not possible on binary files (usually)
• Can revert by date/time if you know it
Thursday, May 26, 2011
![Page 60: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/60.jpg)
10ext_filter
Thursday, May 26, 2011
![Page 61: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/61.jpg)
ExtFilterDefine
ExtFilterDefine fixtext mode=output \intype=text/html \cmd="/bin/sed s/verdana/arial/g"
<Location />SetOutputFilter fixtext
</Location>
Thursday, May 26, 2011
![Page 62: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/62.jpg)
Silly
• Yes, it’s a somewhat silly example
• And very slow
• But good for rapid prototyping and quick fixes
Thursday, May 26, 2011
![Page 63: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/63.jpg)
Ok, better example
ExtFilterDefine c-to-html mode=output \intype=text/c outtype=text/html \cmd="/usr/bin/enscript --color -W html -Ec -o - -"
<Directory "/www/htdocs/c">SetOutputFilter c-to-htmlAddType text/c .c
# Extra loggingExtFilterOptions DebugLevel=1
</Directory>
Thursday, May 26, 2011
![Page 64: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/64.jpg)
Enscript
•Pretty-prints C source code
•Color syntax coding
•Declines to process files that aren’t “text/c”
Thursday, May 26, 2011
![Page 65: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/65.jpg)
11PHP Source Syntax Pretty Printing
Thursday, May 26, 2011
![Page 66: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/66.jpg)
.phps
• PHP provides a syntax highlighting handler
AddHandler application/x-httpd-php-source .phps
Thursday, May 26, 2011
![Page 67: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/67.jpg)
phps
Thursday, May 26, 2011
![Page 68: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/68.jpg)
*.phps
• With mod_rewrite
• Or, for Apache 2.0 and earlier ...
RewriteRule ^(.+\.php)s$ \ $1 [H=application/x-httpd-php-source]
RewriteRule ^(.+\.php)s$ \ $1 [T=application/x-httpd-php-source]
Thursday, May 26, 2011
![Page 69: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/69.jpg)
12mod_substitute
Thursday, May 26, 2011
![Page 70: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/70.jpg)
Edit content
• mod_rewrite edits URLs
• mod_substitute modifies content
Thursday, May 26, 2011
![Page 71: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/71.jpg)
Substitute (2.2.7 and later)
Substitute s/ariel/helvetica/inSubstitute s/\bdamn\b/darn/i
Full PCRE syntax available
Flickr: abulic_monkey
Thursday, May 26, 2011
![Page 72: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/72.jpg)
More usefully ...
Substitute s/localhost/www.example.com/i
Thursday, May 26, 2011
![Page 73: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/73.jpg)
13Require, <RequireAll>, <RequireNone>, <RequireAny>
(2.4)Thursday, May 26, 2011
![Page 74: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/74.jpg)
2.3
• New syntax for combining multiple access control requirements
Thursday, May 26, 2011
![Page 75: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/75.jpg)
<RequireAny> Require method GET POST OPTIONS Require valid-user</RequireAny>
Thursday, May 26, 2011
![Page 76: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/76.jpg)
Require expr \ %{TIME_HOUR} >= 9 & %{TIME_HOUR} <= 17
Thursday, May 26, 2011
![Page 77: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/77.jpg)
SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in<Directory /docroot> Require env let_me_in</Directory>
Thursday, May 26, 2011
![Page 78: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/78.jpg)
<Directory /www/mydocs> <RequireAll>
<RequireAny> Require user superadmin<RequireAll>
Require group adminsRequire ldap-group cn=Administrators,o=Airius<RequireAny>
Require group salesRequire ldap-attribute dept="sales"
</RequireAny> </RequireAll>
</RequireAny><RequireNone>
Require group tempsRequire ldap-group cn=Temporary Employees,o=Airius
</RequireNone> </RequireAll>
</Directory>
Thursday, May 26, 2011
![Page 79: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/79.jpg)
# Used to be "allow from all"Require all granted
# Used to be "deny from all"Require all denied
Thursday, May 26, 2011
![Page 80: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/80.jpg)
14CheckSpelling
Thursday, May 26, 2011
![Page 81: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/81.jpg)
CheckSpelling
CheckSpelling On
CheckCaseOnly On
Thursday, May 26, 2011
![Page 82: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/82.jpg)
Good for ...
•Windows users
• Simple typos
• Stupid people who just can’t get stuff right on brochures
Thursday, May 26, 2011
![Page 83: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/83.jpg)
Bad for ...
• Performance
• Every 404 results in a directory scan to see if something was missed
Thursday, May 26, 2011
![Page 84: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/84.jpg)
mod_speling
•Yes, mod_speling
•See, it’s misspelled. Funny, hmm?
•No, I didn’t think so either
Thursday, May 26, 2011
![Page 85: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/85.jpg)
15Caching
Thursday, May 26, 2011
![Page 86: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/86.jpg)
Sort-of-dynamic
• Your blog that you update once every three months
• The front page of your corporate site with database-driven press releases
Thursday, May 26, 2011
![Page 87: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/87.jpg)
Caching dynamic content
CacheEnable disk / CacheRoot /var/www/cacheCacheDefaultExpire 3600# Only in 2.3+CacheMinExpire 3600
# Or, in 2.2-CacheIgnoreCacheControl OnCacheDefaultExpire 600
Thursday, May 26, 2011
![Page 88: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/88.jpg)
Caching
•CacheDir needs to be writeable by the Apache user
•Also great for proxying content from a back-end server
•Can also cache to memory, if you have a lot of RAM
Thursday, May 26, 2011
![Page 89: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/89.jpg)
Even if I say not to ...
CacheIgnoreCacheControl OnCacheStoreNoStore OnCacheStorePrivate On
Resources requiring authentication are NEVER cached!
Thursday, May 26, 2011
![Page 90: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/90.jpg)
Don’t Cache That
CacheIgnoreHeaders Set-Cookie
CacheDisable /images
Thursday, May 26, 2011
![Page 91: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/91.jpg)
16mod_deflate
Thursday, May 26, 2011
![Page 92: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/92.jpg)
Deflate
AddOutputFilterByType DEFLATE \text/html text/plain text/xml
Thursday, May 26, 2011
![Page 93: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/93.jpg)
Compressed
• All content gzipped on the way out to the client
• Browsers decompress it as it arrives
• 2-3 times performance improvement
• Can log compression percentage. See docs.
Thursday, May 26, 2011
![Page 94: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/94.jpg)
Logging
DeflateFilterNote Input instreamDeflateFilterNote Output outstreamDeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflateCustomLog logs/deflate_log deflate
Thursday, May 26, 2011
![Page 95: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/95.jpg)
Caveats
•Works best for sites that are text-heavy
• Don’t try to deflate non-textual data. IE gets angry.
• You can cache the output, but probably don’t want to
Thursday, May 26, 2011
![Page 96: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/96.jpg)
17syslog
Thursday, May 26, 2011
![Page 97: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/97.jpg)
Syslog
ErrorLog syslog:local1
local1.* @sysloghost:601
Thursday, May 26, 2011
![Page 98: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/98.jpg)
Syslog
• Many servers logging to one location
• Log critical errors to somewhere you can’t miss
local1.crit /var/log/panic
Thursday, May 26, 2011
![Page 99: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/99.jpg)
Access log
• Sending the access log to syslog is harder
• Can be done with a piped log handler
• mod_log_spread might be a better way to handle this
Thursday, May 26, 2011
![Page 100: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/100.jpg)
Syslog
CustomLog "|/usr/bin/tee -a /var/log/www/access.log | /usr/bin/logger -thttpd -plocal6.notice" combined
For the access log, use a pipe to `logger`
Thursday, May 26, 2011
![Page 101: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/101.jpg)
18WebDAV
Thursday, May 26, 2011
![Page 102: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/102.jpg)
WebDav
• FTP is insecure
• SCP or SFTP is too complicated for your manager
• Maybe DAV is the right solution
Thursday, May 26, 2011
![Page 103: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/103.jpg)
DavLock /var/dav/davlock <Directory /www/upload> Dav On </Directory>
Thursday, May 26, 2011
![Page 104: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/104.jpg)
Mount from any OS
•Dav on Windows tends to be harder
•Mac, Linux mount them the same as any other file system
Thursday, May 26, 2011
![Page 105: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/105.jpg)
19Debug log modules
Thursday, May 26, 2011
![Page 106: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/106.jpg)
• Sometimes, the error log just doesn’t contain enough detail
Thursday, May 26, 2011
![Page 107: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/107.jpg)
mod_dumpio
DumpIOInput OnDumpIOOutput On
Thursday, May 26, 2011
![Page 108: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/108.jpg)
BIG log
Thursday, May 26, 2011
![Page 109: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/109.jpg)
mod_log_forensic
• Logs the beginning and end of a request
• check-forensic script complains if a particular request wasn’t created
• Logs the details of the request
• Relies on unique_id in 2.0, and can use it in 2.2 if you want
Thursday, May 26, 2011
![Page 110: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/110.jpg)
20mod_logio
Thursday, May 26, 2011
![Page 111: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/111.jpg)
Normal logging
• 42729 is the bytes downloaded, NOT including headers, and does NOT include the request.
• Total transaction size is more than this
129.101.54.111 - - [13/Sep/2006:19:45:35 -0400] "GET /images/Kenya_world_map.jpg HTTP/1.0" 200 42739
Thursday, May 26, 2011
![Page 112: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/112.jpg)
mod_logio
• %I is total input
• %O is total output
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
Thursday, May 26, 2011
![Page 113: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/113.jpg)
21PATH_INFO
Thursday, May 26, 2011
![Page 114: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/114.jpg)
PATH_INFO
http://www.foo.com/example.php/one/two
This bit
Thursday, May 26, 2011
![Page 115: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/115.jpg)
Granny says ...
• The most important thing about mod_rewrite magic is knowing when not to use it.
(With apologies to Terry Pratchett)
Thursday, May 26, 2011
![Page 116: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/116.jpg)
“Pretty” URLs
• mod_rewrite frequently used to rewrite query strings into path information:
RewriteEngine OnRewriteRule ^/book/([^/]+)/([^/]+)/? \ /book.php?author=$1&topic=$2 [PT,L]
Thursday, May 26, 2011
![Page 117: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/117.jpg)
Which gives you
... instead of ...
http://www.foo.com/book/bowen/apache
http://www.foo.com/book.php?author=bowen&topic=apache
Thursday, May 26, 2011
![Page 118: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/118.jpg)
Bad news
• This doesn’t actually result in higher search engine ranking
• It does, however, make it easier to read the URL over the phone
Thursday, May 26, 2011
![Page 119: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/119.jpg)
Using PATH_INFO instead
• Remove the unnecessary additional processing
• Faster
• Much shinier
• You get to be smug with people who do it the old-and-crufty way
Thursday, May 26, 2011
![Page 120: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/120.jpg)
Step One
• ‘book’ needs to be a php file
• Without the .php file extension
<Files book> SetHandler application/x-httpd-php</Files>
Thursday, May 26, 2011
![Page 121: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/121.jpg)
Step Two
<?php
list($zero, $one, $two) = explode(“/”, $_SERVER[‘PATH_INFO’]);
?>
Thursday, May 26, 2011
![Page 122: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/122.jpg)
Switch
$args = split(‘/’, $_SERVER[‘PATH_INFO’];switch( $args[1] ) {
case ‘foo’ : // stuff herebreak;
case ‘bar’ : // stuff herebreak;
default : // Other stuffbreak;
}
Thursday, May 26, 2011
![Page 123: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/123.jpg)
22graceful-stop
Thursday, May 26, 2011
![Page 124: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/124.jpg)
graceful-stop
• 2.2
• Stop the server, but allow connections to complete what they are doing
apachectl graceful-stop
Thursday, May 26, 2011
![Page 125: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/125.jpg)
23authn_alias
Thursday, May 26, 2011
![Page 126: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/126.jpg)
mod_authn_alias
• Allows you to create aliases of various auth sources, so that you can check multiple sources of the same type
Thursday, May 26, 2011
![Page 127: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/127.jpg)
LoadModule authn_alias_module modules/mod_authn_alias.so
<AuthnProviderAlias ldap ldap-alias1>AuthLDAPBindDN cn=youruser,o=ctxAuthLDAPBindPassword yourpasswordAuthLDAPURL ldap://ldap.host/o=ctx
</AuthnProviderAlias>
<AuthnProviderAlias ldap ldap-other-alias>AuthLDAPBindDN cn=yourotheruser,o=devAuthLDAPBindPassword yourotherpasswordAuthLDAPURL ldap://other.ldap.host/o=dev?cn
</AuthnProviderAlias>
Alias /secure /webpages/secure<Directory /webpages/secure>
Order deny,allowAllow from all
AuthBasicProvider ldap-other-alias ldap-alias1AuthType BasicAuthName LDAP_Protected_PlaceAuthzLDAPAuthoritative offrequire valid-user
</Directory>
Thursday, May 26, 2011
![Page 128: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/128.jpg)
Or ...
<AuthnProviderAlias file file1> AuthUserFile /tmp/user1</AuthnProviderAlias>
<AuthnProviderAlias file file2> AuthUserFile /tmp/user2</AuthnProviderAlias>
<Location /x> AuthType Basic AuthBasicProvider file1 file2 AuthName "Wooga"
Require valid-user</Location>
Thursday, May 26, 2011
![Page 129: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/129.jpg)
24Protocol modules
Thursday, May 26, 2011
![Page 130: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/130.jpg)
mod_pop3
• That’s right! It’s a pop3 server!
• http://svn.apache.org/viewcvs.cgi/httpd/mod_pop3/
Thursday, May 26, 2011
![Page 131: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/131.jpg)
See also ...
• mod_echo
• mod_smtpd
• mod_spamd
• mod_ftpd
Thursday, May 26, 2011
![Page 132: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/132.jpg)
Protocol modules
• Apache httpd is a generic protocol server
• Protocol modules can be any protocol
Thursday, May 26, 2011
![Page 133: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/133.jpg)
Why?
• Common configuration format
• Common authentication architecture
• Common rewriting/mapping capabilities
Thursday, May 26, 2011
![Page 134: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/134.jpg)
25Event mpm
Thursday, May 26, 2011
![Page 135: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/135.jpg)
2.2
• Solves the Keepalive problem
Thursday, May 26, 2011
![Page 136: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/136.jpg)
What Keepalive problem?
Thursday, May 26, 2011
![Page 137: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/137.jpg)
With event ...
Thursday, May 26, 2011
![Page 138: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/138.jpg)
How?
• Keepalive sockets are shoved into a queue
• The child/thread can immediately answer the next request
Thursday, May 26, 2011
![Page 139: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/139.jpg)
26mod_dbd
Thursday, May 26, 2011
![Page 140: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/140.jpg)
mod_dbd
•Manages database connection pooling
•Not actually much use by itself
•Great for other modules that need to talk to databases
• Such as ...
Thursday, May 26, 2011
![Page 141: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/141.jpg)
mod_authn_dbd
• Auth against any SQL database
• Well, “any” might be a little too optimistic
Thursday, May 26, 2011
![Page 142: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/142.jpg)
DBDriver pgsql
#Connection string: database name and login credentialsDBDParams "dbname=htpasswd user=apache password=xxxxxx"
#Parameters for Connection Pool ManagementDBDMin 1DBDKeep 2DBDMax 10DBDExptime 60
<Directory /usr/www/myhost/private> AuthType Basic AuthName "My Server" AuthBasicProvider dbd Require valid-user AuthDBDUserPWQuery "select password from authn where username = %s"</Directory>
Thursday, May 26, 2011
![Page 143: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/143.jpg)
dbd RewriteMap rules
RewriteMap myquery "fastdbd:SELECT destination FROM rewrite WHERE source = %s"
RewriteRule (.*) ${myquery:$1} [PT]
Thursday, May 26, 2011
![Page 144: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/144.jpg)
27mod_negotiation
Thursday, May 26, 2011
![Page 145: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/145.jpg)
File extensions are *so* Windows 3.1
• http://www.example.com/index is much cooler than http://www.example.com/index.php
• And lets you change to .html or .cfm later on without changing your URLs
Thursday, May 26, 2011
![Page 146: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/146.jpg)
It’s a feature
• A request for the resource called index is served by the variant called index.php
• index.php.en and index.php.fr are also variants of this resource
• Accept-Language (in your browser prefs)
Options +MultiViews
Thursday, May 26, 2011
![Page 147: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/147.jpg)
Demo
• See httpd documentation multi-language
Thursday, May 26, 2011
![Page 148: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/148.jpg)
28Pluggable MPMs (2.4)
Thursday, May 26, 2011
![Page 149: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/149.jpg)
2.2 and earlier
• Changing MPM requires a rebuild.
• If you want to run several daemons with different MPMs, you'd need several different binaries
Thursday, May 26, 2011
![Page 150: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/150.jpg)
2.3
--enable-mpms-shared="event prefork worker"
Load with LoadModule
LoadModule mpm_event_module modules/mod_mpm_event.so
Thursday, May 26, 2011
![Page 151: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/151.jpg)
Multi-daemon
• Same binary
• Switch MPM (and other config options) by using -f
Thursday, May 26, 2011
![Page 152: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/152.jpg)
29mod_authnz_ldap
Thursday, May 26, 2011
![Page 153: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/153.jpg)
Auth against LDAP
LoadModule authn_alias_module modules/mod_authn_alias.so
AuthLDAPBindDN cn=youruser,o=ctx AuthLDAPBindPassword yourpassword AuthLDAPURL ldap://ldap.host/o=ctx
<Directory /webpages/secure> Order deny,allow Allow from all
AuthBasicProvider ldap
AuthType Basic AuthName LDAP_Protected_Place AuthzLDAPAuthoritative off require valid-user </Directory>
Thursday, May 26, 2011
![Page 154: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/154.jpg)
LDAP auth
• Use any LDAP groups, users, ACLs, whatnot that you use elsewhere on your network
Thursday, May 26, 2011
![Page 155: N Things You Didn’t Know You Could Do With Apache Tek11 ...drbacchus.com/files/20_Things.pdf · N Things You Didn’t Know You Could Do With Apache Tek11, 2011, Chicago Rich Bowen](https://reader031.fdocuments.us/reader031/viewer/2022011908/5f5fe59ec581bc25c65d0861/html5/thumbnails/155.jpg)
#apache
• For anything else you don’t know, #httpd is the source of all wisdom and wit
• irc.freenode.net
• http://people.apache.org/~rbowen
• http://joind.in/3413
Thursday, May 26, 2011