httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Travis Sidelinger <tra...@ilive4code.net>
Subject Re: [users@httpd] mod_rewrite + mod_proxy trouble
Date Mon, 11 Feb 2008 15:03:26 GMT
I see that now.  Will check with the developers and see if they can work with
that.  Thou, I'd still like to know why mod_rewrite is behaving funny.

Mike Cardwell wrote:
> mod_proxy should add an extra HTTP header to the request called
> "X-Forwarded-For" which you can parse to retrieve the IP address from.
> Note, this can contain multiple IPs if there are several proxies on
> route so make sure you parse it correctly.
> 
> Regards,
> Mike
> 
> Travis Sidelinger wrote:
>> We have used both mod_rewrite and mod_proxy successfully in numerous
>> configurations.  Put them together and they don't seem to like each
>> other.
>>
>> We have a working production mod_proxy_balancer configuration for two
>> backend
>> web servers that is working great, except...  The backend web servers
>> need the
>> IP address of the clients to identify their location.
>>
>> Yes, I had suggested just adding a location drop down so that users
>> could select
>> their own location within the web application.  Too inconvenient for
>> the end
>> user they say.
>>
>> They want "c_loc=xxx" added to the URL at the load balancer.  Okay,
>> this sounds
>> like a job for mod_rewrite.  This should be easy enough using the QSA
>> option.
>> But... mod_proxy works great, mod_rewrite works great, I put the to
>> together and
>> they seem to not like each other.
>>
>> Below is one of the many configurations tested.  The best I can get is
>> the URI
>> components are mixed up incorrectly.  Any ideas?
>>
>> My build of apache:
>> tar -xvzf httpd-2.2.8.tar.gz
>> cd httpd-2.2.8
>> CFLAGS="-O2" ./configure --enable-http --enable-info=shared \
>> --enable-ssl=shared --enable-rewrite=shared --enable-speling=shared \
>> --enable-cgi=shared --enable-deflate=shared --enable-disk-cache=shared \
>> --enable-cache=shared --enable-proxy=shared --enable-proxy-http=shared \
>> --enable-proxy-balancer=shared --prefix=/vol/devl/loadbalancer
>> make
>> make install
>>
>> <VirtualHost catalog-devl.tld.org:81>
>>    ServerName catalog-devl.tld.org
>>    LogLevel debug
>>
>>    <Proxy *>
>>        AddDefaultCharset off
>>        Order Allow,Deny
>>        Allow from all
>>    </Proxy>
>>
>>    <Location /balancer-manager>
>>        SetHandler balancer-manager
>>        Order Allow,Deny
>>        Allow from 192.168.200.0/24 192.168.222.0/24 192.168.223.0/24
>> 192.168.220.13
>>    </Location>
>>
>>    <Location />
>>        Order Allow,Deny
>>        Allow from 192.168.0.0/16 172.16.0.0/12
>>    </Location>
>>
>>    # Add the client's location number to the URL
>>    RewriteEngine On
>>    # Large list of locations goes here.  List removed to shorten for
>> email
>>    RewriteCond %{REMOTE_HOST}  ^192\.168\.1\.[5-8]
>>    RewriteRule /.*\.aspx?\?
>> http://catalog-devl.tld.org%{REQUEST_URI}&c_loc=730 [L]
>>    RewriteCond %{REMOTE_HOST}  ^192\.168\.220\.
>>    # Here are things I have tried
>>    RewriteRule "^/(.*)$" proxy:balancer://aquabrowser$1&c_loc=220"
>> [QSA,L]   # I
>> get 404 Error: "GET //cd/README&c_loc=220%22?test=1 HTTP/1.1" in the
>> logs of the
>> backend server.
>>    RewriteRule "^(.*\?.*)$"
>> "http://catalog1.tld.org%{REQUEST_URI}&c_loc=220"
>> [L,P]  # I get 404 Error: "GET /cd/README&c_loc=220?test=1 HTTP/1.1"
>> in the logs
>> of the backed server.
>>    # This is a long list other things I have tried.  Nothing seems to
>> work.
>>
>>    ProxyRequests Off
>>    ProxyVia On
>>    ProxyPreserveHost On
>>
>>    ProxyPass /balancer-manager !
>>
>>    # Catalog Development
>>    ProxyPass / balancer://aquabrowser/
>>    <Proxy balancer://aquabrowser>
>>        BalancerMember http://catalogdev.tld.org:80 min=1 smax=20
>> loadfactor=5
>>        #BalancerMember http://catalog1.tld.org:80 min=1 smax=20
>> loadfactor=5
>> route=CAT1
>>        #BalancerMember http://catalog2.tld.org:80 min=1 smax=20
>> loadfactor=5
>> route=CAT2
>>        ProxySet lbmethod=byrequests
>>        ProxySet stickysession=ABbalancer
>>        ProxySet nofailover=Off
>>        ProxySet maxattempts=3
>>        ProxySet timeout=5
>>        Order Allow,Deny
>>        Allow from 192.168.0.0/16 172.16.0.0/12
>>
>>    </Proxy>
>>    ProxyPassReverse / http://catalogdev.tld.org
>>    #ProxyPassReverse / http://catalog1.tld.org
>>    #ProxyPassReverse / http://catalog2.tld.org
>> </VirtualHost>
>>
>>
>> Travis Sidelinger
>>
>>
>> ---------------------------------------------------------------------
>> The official User-To-User support forum of the Apache HTTP Server
>> Project.
>> See <URL:http://httpd.apache.org/userslist.html> for more info.
>> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
>> For additional commands, e-mail: users-help@httpd.apache.org
>>
>>
>>
>> ---------------------------------------------------------------------
>> The official User-To-User support forum of the Apache HTTP Server
>> Project.
>> See <URL:http://httpd.apache.org/userslist.html> for more info.
>> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>>    "   from the digest: users-digest-unsubscribe@httpd.apache.org
>> For additional commands, e-mail: users-help@httpd.apache.org
>>
>>
> 
> 
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org
> 
> 


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message