como faço para inverter o nome do host de um subdomínio para um nome de domínio diferente?

2

Eu quero inverter o proxy de um subdomínio para outro nome de domínio com o mesmo nome de host.

Exemplo:

fitzefatze.sourcedomain.com deve obter o conteúdo de:

fitzefatze.targetdomain.com

Isso deve ser dinâmico, para que cada nome de host seja traduzido para o nome de domínio de destino.

Acho que isso pode ser feito com a diretiva ProxyPass, mas não sei como obter o nome do host para o destino:

algo como isto     NomeDoServidor * .sourcedomain.com

ProxyRequests Off
<Proxy *>
    AddDefaultCharset off
    Order deny,allow
    Allow from all #
</Proxy>

ProxyPass / $1.targetserver.com

    
por Mario Schweda 22.12.2012 / 17:12

2 respostas

2

Há a diretiva ProxyPassMatch, mas especifica a seguinte restrição:

The URL argument must be parsable as a URL before regexp substitutions (as well as after). This limits the matches you can use. For instance, if we had used

ProxyPassMatch ^(/.*.gif)$ http://backend.example.com:8000$1

in our previous example, it would fail with a syntax error at server startup. This is a bug (PR 46665 in the ASF bugzilla), and the workaround is to reformulate the match:

ProxyPassMatch ^/(.*.gif)$ http://backend.example.com:8000/$1

Não sei se aceitará http: //$1.targetserver.com como um URL válido antes da substituição - teste-o e informe-nos!

Como mencionado por Shane, você também pode usar o mod_rewrite, mas você deve estar ciente de que o proxy feito pelo mod_rewrite não usa o pool de conexão - cada nova requisição irá criar uma nova conexão de proxy na hora. Portanto, você não poderá se beneficiar do pooling de conexões persistentes feito pelo ProxyPass, nem poderá ajustar seu comportamento com as opções por pool de conexão que o ProxyPass fornece (keepalive, timeout, connectiontimeout, retry, min / max , etc.).

Observe que parece não haver uma diretiva ProxyPassReverseMatch correspondente para nenhuma das alternativas.

    
por 22.12.2012 / 23:49
0

Para fazer isso, você precisará usar mod_rewrite ..

RewriteCond %{HTTP_HOST} ^(.*)\.sourcedomain\.com$
RewriteRule ^/(.*)$ http://%1.targetdomain.com/$1 [P,L]

.. e tenha em mente que ProxyPassReverse não funcionará aqui, portanto, nenhuma resposta 30x será traduzida.

    
por 22.12.2012 / 20:56