Isto é da documentação do Apache
ProxyPass
Directive
Description: Maps remote servers into the local server URL-space
Syntax:
ProxyPass [path] !|url [key=value [key=value ...]] [nocanon] [interpolate] [noquery]
Context: server config, virtual host, directory
Status: Extension
Module: mod_proxy
Esta diretiva permite que os servidores remotos sejam mapeados para o espaço do servidor local; o servidor local não atua como um proxy no sentido convencional, mas parece ser um espelho do servidor remoto. O servidor local é freqüentemente chamado de proxy reverso ou gateway . O caminho é o nome de um caminho virtual local; url é uma URL parcial para o servidor remoto e não pode incluir uma string de consulta.
Note: This directive cannot be used within a context.
The
ProxyRequests
directive should usually be set off when usingProxyPass
.
Suponha que o servidor local tenha o endereço http://example.com/;
then
ProxyPass http://backend.example.com/
fará com que uma solicitação local para http://example.com/mirror/foo/bar
seja convertida internamente em uma solicitação de proxy para http://backend.example.com/bar
.
A sintaxe alternativa a seguir é possível, mas pode levar uma penalidade de desempenho quando presente em números muito grandes. A vantagem da sintaxe abaixo é que ela permite o controle dinâmico por meio da interface do Gerenciador do balanceador:
ProxyPass /mirror/foo/ http://backend.example.com/
If the first argument ends with a trailing /, the second argument should also end with a trailing / and vice versa. Otherwise the resulting requests to the backend may miss some needed slashes and do not deliver the expected results.
O! A diretiva é útil em situações em que você não deseja fazer proxy reverso de um subdiretório, por exemplo,
<Location /mirror/foo/>
ProxyPass http://backend.example.com/
</Location>
<Location /mirror/foo/i>
ProxyPass !
</Location>
ProxyPass /mirror/foo/i ! ProxyPass /mirror/foo http://backend.example.com
fará o proxy de todas as solicitações para solicitações /mirror/foo
to backend.example.com
exceto feitas para /mirror/foo/i
.
Ordering ProxyPass Directives
The configured
ProxyPass
andProxyPassMatch
rules are checked in the order of configuration. The first rule that matches wins. So usually you should sort conflictingProxyPass
rules starting with the longest URLs first. Otherwise later rules for longer URLS will be hidden by any earlier rule which uses a leading substring of the URL. Note that there is some relation with worker sharing. In contrast, only oneProxyPass
directive can be placed in aLocation
block, and the most specific location will take precedence. For the same reasons exclusions must come before the generalProxyPass
directives.
No Apache HTTP Server 2.1 e posterior, o mod_proxy suporta conexões em pool com um servidor backend. As conexões criadas sob demanda podem ser retidas em um pool para uso futuro. Limites no tamanho do pool e outras configurações podem ser codificados na diretiva ProxyPass usando os parâmetros key=value
, descritos na tabela abaixo.
Por padrão, o mod_proxy permitirá e manterá o número máximo de conexões que podem ser usadas simultaneamente por esse processo filho do servidor web. Use o parâmetro max
para reduzir o número do padrão. Use o parâmetro ttl
para definir um horário opcional para viver; as conexões que não foram usadas por pelo menos ttl
segundos serão fechadas. ttl
pode ser usado para evitar o uso de uma conexão que está sujeita a fechamento devido ao tempo limite de manutenção do servidor de backend.
O pool de conexões é mantido por processo filho do servidor web e max
e outras configurações não são coordenadas entre todos os processos filhos, exceto quando apenas um processo filho é permitido pela configuração ou pelo design do MPM.
Example
ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300