O que deve ser configurado na configuração do proxy AJP?

1

Eu tenho o servidor Apache HTTPD em nosso produto e preciso adicionar o proxy AJP a algum aplicativo específico.

A porta AJP do Tomcat é 8009 e a porta HTTP do Tomcat é 8080 (a terminação SSL está no Apache). Este é o proxy AJP que eu preciso configurar.

<Directory /app>
    AuthType None
    Allow from all
    Satisfy any
    AllowOverride None
    Options None FollowSymLinks
</Directory>

<Proxy http://localhost:8080/app >
    AuthType None
    Allow from all
    Order Deny,Allow
    Satisfy any
    Options None FollowSymLinks
</Proxy>
ProxyPass /app ajp://localhost:8009/app
<Location /app>
        ProxyPassReverse ajp://localhost:8009/app
</Location>

Pergunta: O que deve ser configurado em <Proxy … > ? %código% ou <Proxy http://localhost:8080/app >

Adicionado Esclarecimento. Toda a configuração contém a configuração raiz (veja abaixo).

Só preciso adicionar o proxy AJP a algum aplicativo específico.

<Directory />
    Deny from all
    Allow from localhost
    Order Deny,Allow
    AuthType Basic
    Require valid-user
    AllowOverride None
    Satisfy any
    Options None FollowSymLinks
</Directory>


<Proxy *>
    Deny from all
    Order Deny,Allow
    AuthType Basic
    Require valid-user
    Satisfy any
    Options None FollowSymLinks
</Proxy>
    
por Michael 23.12.2016 / 11:23

3 respostas

3

OK, você tem vários equívocos sobre a configuração do Apache que precisam ser corrigidos.

  1. <Directory> blocks se refere a caminhos absolutos do sistema de arquivos. Não URI Paths ou uns relativos à raiz do documento. Quando proxying, como mencionado por David Hutchinson, você deve usar <Location> blocks.
  2. <Proxy> blocks são (quase) exclusivamente usados para configurar proxies forward, não reversos. Remova esses blocos, você não precisa deles. Mais uma vez, use <Location> blocks.
  3. Não use ProxyPass ou ProxyPassReverse dentro de <Location> . Embora seja válido, pode complicar as coisas. Basta usar as duas versões de argumento dessa diretiva. Além disso, a menos que você tenha uma razão para não usar barras cortadas em ambas as diretivas.

A ordem dos blocos de localização pode precisar ser revertida (não consigo me lembrar do topo da minha mente a ordem correta), mas comece com algo como:

ProxyPass /app/ ajp://localhost:8009/app/
ProxyPassReverse /app ajp://localhost:8009/app/

<Location />
  Order Allow,Deny
  Allow from localhost
  AuthType Basic
  Require valid-user
</Location>

<Location /app/>
  Allow from all
</Directory>

Eu removi diretivas onde elas eram o padrão.

    
por 24.12.2016 / 18:11
2

Você não precisa do bloco "< Proxy" para fazer o que está tentando alcançar.

As diretivas ProxyPass e ProxyPassReverse são tudo o que você precisa. Por questões de legibilidade, aconselho, no entanto, que coloquem ambos no bloco Localização ou nenhum deles.

Se você precisar definir configurações diferentes para o caminho do seu aplicativo, por exemplo, autenticação de certificado de cliente, use um bloco Location (ou LocationMatch) como você já está em sua configuração.

    
por 23.12.2016 / 12:42
0

Você pode usar apenas <Proxy *> . Eu acho que vai ser bom com isso.

    
por 23.12.2016 / 12:07