Mailing List Archive

[patch] Re: introducing new code with no perceived user delays?
A patch for http://perl.apache.org/docs/1.0/guide/scenario.pod.orig
from discussion on the modperl list is below which includes some code
posted to the list.

On Sat, 2003-12-20 at 21:17, Stas Bekman wrote:
> Fred Moyer wrote:
>
> > looks familiar. Do I get credit? :)
>
> You obviously do get the credit, but in the contributor logs, not in the text
> itself:
> http://perl.apache.org/search/swish.cgi?query=randal&sbm=&submit=search
> http://perl.apache.org/about/contributors/other.html#Contributors
>
> > I'm not familiar with the protocol regarding credit for the mod_perl
> > documentation but this updated patch gives credit to the contributors :)
>
> Fred, can you please send in a previous version (no contributor names in the
> text) but as a unified patch, i.e generated with 'diff -u':
>
> diff -u orig new
>
> See:
> http://perl.apache.org/download/docs.html#Submitting_documentation_patches
>
> Thanks.

--- scenario.pod.orig 2003-12-20 02:18:35.000000000 +0000
+++ scenario.pod 2003-12-20 11:56:09.000000000 +0000
@@ -1653,6 +1653,10 @@

=head1 mod_rewrite Examples

+Example code for using mod_rewrite with mod_perl application servers.
Several examples were taken from the mailing list.
+
+=head2 Rewriting Requests Based on File Extension
+
In the mod_proxy + mod_perl servers scenario, C<ProxyPass> was used to
redirect all requests to the mod_perl server, by matching the
beginning of the relative URI (e.g. I</perl>). What should you do if
@@ -1686,16 +1690,20 @@
It says: log all the rewrites thru the pipe to the C<rotatelogs>
utility which will rotate the logs every 2 hours (86400 secs).

-More examples:
+=head2 Internet Exporer 5 favicon.ico 404

Redirect all those IE5 requests for I<favicon.ico> to a central image:

RewriteRule .*favicon.ico /wherever/favicon.ico [PT,NS]

+=head2 Hiding Extensions for Dynamic Pages
+
A quick way to make dynamic pages look static:

RewriteRule ^/wherever/([a-zA-Z]+).html /perl-bin/$1.cgi [PT]

+=head2 Serving Static Content Locally and Rewriting Everything Else
+
Instead of keeping all your Perl scripts in I</perl> and your static
content everywhere else, you could keep your static content in special
directories and keep your Perl scripts everywhere else. You can still
@@ -1738,6 +1746,35 @@
RewriteRule ^/(.*) http://www.example.com:8080/$1 [P]
ProxyPassReverse / http://www.example.com/

+=head2 Upgrading mod_perl Heavy Application Instances
+
+When using a light/heavy separation method one of the challenges of
running a production environment is being able to upgrade to newer
versions of mod_perl or your own application. The following method can
be used without having to do a server restart.
+
+Add the following rewrite rule to your httpd.conf file:
+
+ RewriteEngine On
+ RewriteMap maps txt:/etc/httpd.maps
+ RewriteRule ^(.*) http://${maps:appserver}$1 [proxy]
+
+Create the file /etc/httpd.maps and add the following entry:
+
+ appserver foo.com:9999
+
+Mod_rewrite rereads (or checks the mtime of) the file on every request
so the change takes effect immediately. To seamlessly upgrade your
application server to a new version, install a new version on a
different port. After checking for a quality installation, edit
/etc/httpd.maps to point to the new server. After the file is written
the next request the server processes will be redirected to the new
installation.
+
+=head2 Blocking IP Addresses
+
+The following rewrite code blocks IP addresses:
+
+ RewriteCond /web/site/var/blocked/REMOTE_ADDR-%{REMOTE_ADDR} -f
+ RewriteRule .* http://YOUR-HOST-BLOCKED-FOR-EXCESSIVE-CONSUMPTION
[redirect,last]
+
+To block IP address 10.1.2.3, simply touch
+
+ /web/site/var/blocked/REMOTE_ADDR-10.1.2.3
+
+This has an advantage over Apache parsing a long file of addresses in
that the OS is better at a file lookup.
+
=head1 Caching in mod_proxy

This is not really mod_perl related, so I'll just stress one



---------------------------------------------------------------------
To unsubscribe, e-mail: docs-dev-unsubscribe@perl.apache.org
For additional commands, e-mail: docs-dev-help@perl.apache.org
Re: [patch] Re: introducing new code with no perceived user delays? [ In reply to ]
Fred Moyer wrote:
> A patch for http://perl.apache.org/docs/1.0/guide/scenario.pod.orig
> from discussion on the modperl list is below which includes some code
> posted to the list.

Thanks Fred, applied. (was waiting for apache.org to come back)

In the future, please wrap long lines. I had to manually add it.

__________________________________________________________________
Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org http://ticketmaster.com


---------------------------------------------------------------------
To unsubscribe, e-mail: docs-dev-unsubscribe@perl.apache.org
For additional commands, e-mail: docs-dev-help@perl.apache.org