5

I want to use the Apache HTTPd as a proxy server:

If a user requests http://xxx?st=yyy the chosen backend server should be server1. If a user requests http://xxx (no st parameter) then the backend server should be server2.

I want to know how I need to configure Apache to achieve this.

Holger Just
  • 52,918
  • 14
  • 115
  • 123
L.J.W
  • 1,575
  • 5
  • 18
  • 24

1 Answers1

4

Have a look at http://httpd.apache.org/docs/current/mod/mod_rewrite.html and the examples; specifically you are helped by the fact that:

  • REQUEST_URI The path component of the requested URI, such as "/index.html". This notably excludes the query string which is available as as its own variable named QUERY_STRING.

Which then lets you do things like

RewriteCond  %{QUERY_STRING}  ^$
RewriteRule ^/foo/(.*)$ http://server2/$1 [P,L]

RewriteRule ^/foo/(.*)$ http://server1/$1 [P,L]

and so on. If it is the entire server - remove /foo/ and the / before $1 - if it is server specific - put an extra RewriteCond in front of it to limit to a specific host and so on.

Dirk-Willem van Gulik
  • 7,566
  • 2
  • 35
  • 40