Apache-ProxyConf

 view release on metacpan or  search on metacpan

ProxyConf.pm  view on Meta::CPAN

Consider the network in figure 1. 

          Network A: 172.16.0.0/20

             _.-"""""""""""""""""-._
           .'                       `.
          /                           \
        |    Proxy A1: 172.16.0.10    |
        |                             |
        |    Proxy A2: 172.16.0.20    |
         \                           /
          `._                     _.'\
             `-.................-'    \
                                       \
                                        \  Network B: 172.16.16.0/20
                                         \
                                          \ _.-"""""""""""""""""-._
                                          .'                       `.
                                         /                           \
                                        |                             |
                                        |    Proxy B: 172.16.16.10    |
                                        |                             |
                                         \                           /
                                          `._                     _.'
                                          /  `-.................-'
                                         /
                                        /
          Network C: 172.16.32.0/20    /
                                      /
            _.-"""""""""""""""""-._  /
          .'                       `.
         /                           \
        |                             |
        |    Proxy C: 172.16.32.10    |
        |                             |
         \                           /
          `._                     _.'
             `-.................-'

                                    Figure 1.

The proxies have the following connectivity:

 Proxy A1	Internet connectivity
 Proxy A2	Internet connectivity
 Proxy B	parents with proxy A1 and A2
 Proxy C	parents with proxy B and A1

Clients in the three networks need to get the following proxy configuration:

 172.16.0.0/20	Half of the clients connect to proxy A1 and use proxy A2
		as fallback, the other half use proxy A2 with A1 as
		fallback.
 172.16.16.0/20	Clients use proxy B with proxy A2 as fallback.
 172.16.32.0/20	Clients use proxy C with proxy B as fallback.

For secure HTTP traffic special rules apply. Because this traffic is not
cached all clients connect to proxy A1 and A2 directly spreading the load
equally.

This is how the proxyconf.ini looks:

 [proxy]
 172.16.0.0/20=(172.16.0.10:3128,172.16.0.20:3128)
 172.16.16.0/20=172.16.16.10:3128,172.16.0.20:3128
 172.16.32.0/20=172.16.32.10:3128,172.16.16.10:3128

 [https]
 172.16.0.0/16=(172.16.0.10:3128,172.16.0.20:3128)

=head1 EXTRA OPTIONS

It is possible to add additional noproxy hosts in the 'Autoconfigure URL' in
the browser. This way a local webserver can be tested without losing the
benefits of the proxy config. The following string must be entered in the
'Autoconfigure URL'.

http://proxyconf.some.domain/?noproxy=hostname.some.domain

Multiple hostnames are specified using a comma as separator.

http://proxyconf.some.domain/?noproxy=fqhn1,fqhn2 

=head1 DEBUGGING

The proxy config service can be called with a debug option. Type the following
URL in a browser:

http://proxyconf.some.domain/?debug=1&ipaddr=172.16.0.100

The script will generate a html page which contains the settings of all
variables and displays the script it sends to the browser for the specified
IP address. 

=head1 AUTHOR

Patrick Schoo <pschoo@playbeing.com>

Originally written by Bert Driehuis <driehuis@playbeing.org>



( run in 0.807 second using v1.01-cache-2.11-cpan-39bf76dae61 )