## # File: # upstream # Description: # This file describes how to use upstream blocks. ## An upstream block allows you to set a list of upstream locations for both proxy_pass and fastcgi_pass directives. Examples of upstream blocks: # PHP listening on the same server upstream php { # ip_hash ensures the same backend is used for client reconnects. ip_hash; # This assumes we have multiple PHP listeners on different known ports. server 127.0.0.1:9000; server 127.0.0.1:9001; server 127.0.0.1:9002; server 127.0.0.1:9003; # In addition to listening on ports, we can listen to unix sockets. server unix:/tmp/php-cgi.socket; } # Multiple backend Apache instances on separate servers upstream apache { # Adding a weight alters the chance the upstream server will be used. server apache1.domain.com weight 5; server apache2.domain.com; server apache3.domain.com; # Adding 'down' keeps the upstream from being used. Useful for downtime management. server apache4.domain.com down; server apache5.domain.com; } Using an upstream location: # Passing PHP to upstream location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi_params; fastcgi_pass php; } # Passing all requests for /cgi-bin/* to Apache upstreams. location /cgi-bin { proxy_pass apache; } For more information see http://wiki.nginx.org/HttpUpstreamModule