Project

General

Profile

Docs ModProxyCore » History » Revision 2

Revision 1 (jakabosky, 2006-12-12 22:33) → Revision 2/51 (jakabosky, 2006-12-12 22:45)

{{{  
 #!rst  

 =================== for php 
 the Proxy Interface 
 =================== {{{ 

 ---------------------- 
 Module: mod_proxy_core 
 ---------------------- 

 .. contents:: Table of Contents 


 Description 
 =========== 

 ... 

 Options 
 ======= 

 lighttpd provides the Proxy support via the proxy-module  
 (mod_proxy) which provides 3 options in the config-file: 

 :proxy.debug: $HTTP["url"] =~ "\.php$" { 
   a value between 0 and 65535 to set the debug-level in the proxy-core.balancer = "round-robin"  
   Proxy module. Currently only 0 and 1 are used. Use 1 to  
   enable some debug output, 0 to disable it.Note:Use 'enable|disable' in v1.4.13. 

 :proxy.balance: 
   might be one of 'hash', 'round-robin' or 'fair' (default). 
  
   'round-robin' chooses another host for each request, 'hash' 
   is generating a hash over the request-uri and makes sure 
   that the same request URI is sent to always the same host. 
   That can increase the performance of the backend servers 
   a lot due to higher cache-locality. 'fair' is the normal 
   load-based, passive balancing. 

 :proxy.server: 
   tell the module where to send Proxy requests to. Every  
   file-extension can have its own handler. Load-Balancing is  
   done by specifying multiple handles for the same extension. 
  
   structure of proxy.server section: :: 
  
     ( <extension> =>  
       (  
         ( "host" => <string> , 
           "port" => <integer> ), 
         ( "host" => <string> , 
           "port" => <integer> ) 
       ), 
       <extension> => ...  
     ) 

   :<extension>: is the file-extension or prefix (if started with "/") 
                 might empty to match all requests 
   :"host":        is ip of the proxy server 
   :"port":        is tcp-port on the "host" used by the proxy 
                 server (default: 80) 

   e.g.: :: 
  
     proxy.server = ( ".jsp" => 
                        ( (  
                            "host" => "10.0.0.242", 
                            "port" => 81 
                          ) ) 
                      ) 

 Example: 
 ======== 

 Using lighttpd + mod_proxy_core in front of 8 Squids which handle the  
 caching of dynamic content for you. All requests for the host  
 www.example.org should be forwarded to the proxy. All proxies 
 listen on port 80 for requests. :: 

   $HTTP["host"] == "www.example.org" { 
     proxy-core.protocol = "http" 
     proxy-core.balancer = "sqf" 
     "fastcgi"  
   proxy-core.backends = ( "10.0.0.10", 
                             "10.0.0.11", 
                             "10.0.0.12", 
                             "10.0.0.13", 
                             "10.0.0.14", 
                             "10.0.0.15", 
                             "10.0.0.16", 
                             "10.0.0.17" "127.0.0.1:1026" ) 
   proxy-core.max-pool-size = 16 
 } 

 If one of the hosts goes down the all requests for this one server are  
 moved equally to the other servers. If you want to know more about }}} 

 http proxy 
 the algorithm used here google for 'Microsoft CARP'. {{{ 

 for php :: 

   $HTTP["url"] =~ "\.php$" "/proxy/" { 
     
   proxy-core.protocol = "http"  
 #    proxy-core.balancer = "round-robin" 
     proxy-core.protocol  
   proxy-core.balancer = "fastcgi" 
     "sqf"  
   proxy-core.backends = ( "127.0.0.1:1026" 
     "10.0.0.10:80",  
     "10.0.0.11:80" ) 
     proxy-core.max-pool-size = 16 
   
 } 

 }}}