Skip to content

Instantly share code, notes, and snippets.

@bradley-holt
Created March 25, 2011 19:02
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save bradley-holt/887395 to your computer and use it in GitHub Desktop.
# Create a load balancer named "web-nodes"
<Proxy balancer://web-nodes>
# Add three load balancer members
BalancerMember http://www1.example.com
BalancerMember http://www2.example.com
BalancerMember http://www3.example.com
</Proxy>
# Send all requests to the "web-nodes" balancer
ProxyPass / balancer://web-nodes
# Set a cookie
Header add Set-Cookie "NODE=%{BALANCER_WORKER_ROUTE}e; path=/" \
env=BALANCER_ROUTE_CHANGED
# Create a load balancer named "web-nodes"
<Proxy balancer://web-nodes>
# Add three load balancer members
BalancerMember http://www1.example.com route=1
BalancerMember http://www2.example.com route=2
BalancerMember http://www3.example.com route=3
# Use the NODE cookie for sticky sessions
ProxySet stickysession=NODE
</Proxy>
# Send all requests to the "web-nodes" balancer
ProxyPass / balancer://web-nodes
# Enable mod_rewrite
RewriteEngine On
# Send POST, PUT, and DELETEs to "write" balancer
RewriteCond %{REQUEST_METHOD} ^(POST|PUT|DELETE)$
RewriteRule ^/(.*)$ balancer://write$1 [P]
# Send GET, HEAD, and OPTIONS to "read" balancer
RewriteCond %{REQUEST_METHOD} ^(GET|HEAD|OPTIONS)$
RewriteRule ^/(.*)$ balancer://read$1 [P]
# Modify HTTP response headers (e.g. Location)
ProxyPassReverse / balancer://write
ProxyPassReverse / balancer://read
# Create a load balancer named "web-nodes"
<Proxy balancer://web-nodes>
# Add three load balancer members
BalancerMember http://www1.example.com
BalancerMember http://www2.example.com
BalancerMember http://www3.example.com
# Use the PHPSESSID for sticky sessions
ProxySet stickysession=PHPSESSID
</Proxy>
# Send all requests to the "web-nodes" balancer
ProxyPass / balancer://web-nodes
<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd">
<tsung loglevel="notice" version="1.0">
<!-- Client side setup -->
<clients>
<client host="test-a" weight="1" maxusers="10000" cpu="4" />
<client host="test-b" weight="1" maxusers="10000" cpu="4" />
</clients>
<!-- Server side setup -->
<servers>
<server host="www" port="80" type="tcp" />
</servers>
<!-- Load setup -->
<load>
<arrivalphase phase="1" duration="5" unit="minute">
<users arrivalrate="200" unit="second" />
</arrivalphase>
</load>
<!-- Session setup -->
<session name="default" probability="100" type="ts_http">
<thinktime value="1" random="true" />
<request>
<http method="GET" url="/" />
</request>
</session>
<!-- Monitoring setup -->
<monitoring>
<monitor host="www" type="munin" />
<monitor host="www1" type="munin" />
<monitor host="www2" type="munin" />
<monitor host="www3" type="munin" />
</monitoring>
</tsung>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment