Index: lib/Perlbal/BackendHTTP.pm =================================================================== --- lib/Perlbal/BackendHTTP.pm (revision 721) +++ lib/Perlbal/BackendHTTP.pm (working copy) @@ -343,7 +343,7 @@ !$self->{has_attention} && !defined $NoVerify{$self->{ipport}}) { # the backend should be able to answer this incredibly quickly. - $self->write("OPTIONS * HTTP/1.0\r\nConnection: keep-alive\r\n\r\n"); + $self->write("OPTIONS " . $self->{service}->{verify_backend_path} . " HTTP/1.0\r\nConnection: keep-alive\r\n\r\n"); $self->watch_read(1); $self->{waiting_options} = 1; $self->{content_length_remain} = undef; Index: lib/Perlbal/Service.pm =================================================================== --- lib/Perlbal/Service.pm (revision 721) +++ lib/Perlbal/Service.pm (working copy) @@ -40,6 +40,7 @@ 'persist_client', # bool: persistent connections for clients 'persist_backend', # bool: persistent connections for backends 'verify_backend', # bool: get attention of backend before giving it clients (using OPTIONS) + 'verify_backend_path', # path to check with the OPTIONS request (default *) 'max_backend_uses', # max requests to send per kept-alive backend (default 0 = unlimited) 'connect_ahead', # scalar: number of spare backends to connect to in advance all the time 'buffer_size', # int: specifies how much data a ClientProxy object should buffer from a backend @@ -172,6 +173,12 @@ check_type => "bool", check_role => "reverse_proxy", }, + + 'verify_backend_path' => { + des => "What path the OPTIONS request sent by verify_backend should use. Default is '*'.", + default => '*', + check_role => "reverse_proxy", + }, 'max_backend_uses' => { check_role => "reverse_proxy",