Re: Question about Apache 2.4 and libapreq2 (Apache2::Request)
Jie Gao <[email protected]>
| Newsgroups | gmane.comp.apache.mod-perl |
|---|---|
| Message-ID | <[email protected]> |
* JW <[email protected]> wrote: > Date: Fri, 10 Mar 2017 03:53:27 +0000 > From: JW <[email protected]> > To: "[email protected]" <[email protected]> > Subject: Re: Question about Apache 2.4 and libapreq2 (Apache2::Request) > > Hi, > Back in January I was planning on moving to Apache 2.4+mod_perl+libapreq2 > from Apache 2.2+mod_perl+libapreq2. I'd asked if anyone had problems doing a similar > move -- the answer was no. Thank you again to everyone who replied my earlier post. > > It's been over a month since moving to Apache 2.4. It was fairly straightforward and requiredlittle code to be updated, most of it Apache config. Everything runs as it did before the update and I've > had no problems. The one function that didn't 'work' is described below. > > This mod_perl server is behind a proxy on the same machine. Under Apache 2.2, $r->remote_ip() > returned 127.0.0.1 and not the user's actual IP. So, a PerlPostReadRequestHandler extracted the user's > IP address from the X-Forwarded-For header and set it with $r->remote_ip( $ip ). > > In Apache 2.4 (and mod_perl now) $c->remote_ip is split into $r->useragent_ip and $c->client_ip: > http://httpd.apache.org/docs/2.4/developer/new_api_2_4.html > But, $r->useragent_ip (wrongly) gives me 127.0.0.1. Perhaps this'll be fixed at some point (unlessI'm doing something wrong). So, for now, as above, the IP is extracted from X-Forwarded-For > and set with $r->useragent_ip( $ip ). You seem to be using an old version of mod_perl, for I remember I had to use "$r->useragent_addr->ip_get();" to get at the user's real address with the latest version of mod_perl. Regards, Jie > I was asked by one of the earlier responders to share my experience with the move to Apache 2.4,in case there were others in the same boat. So, if there are, jump right in and good luck! > Cheers, > John > > > > > > > > > > > >