Usando Apache com mod_proxy

Aplicações Atlassian permitem o uso de proxies reversos, porém o Suporte Atlassian não oferece assistência para configuração. Como consequência, a Atlassian não pode garantir qualquer suporte para eles.

Caso seja necessário assistência para a configuração, crie uma pergunta no Atlassian Answers.

Esta página descreve uma das formas de usar o Apache HTTP Server 2.4 para pedidos de proxy para o Confluence sendo executado em um contêiner padrão Tomcat. Encontre mais documentos que explicam como usar NGINX para o mesmo fim.

Você pode usar essa configuração quando:

  • Você já tem um site Apache e deseja adicionar o Confluence (por exemplo, http://www.example.com/confluence).
  • Você tem duas ou mais aplicações Java, cada uma trabalhando em seu próprio servidor de aplicação em portas diferentes, por exemplo, http://example:8090/confluence e http://example:8080/JIRA e você deseja ter ambas disponíveis na porta HTTP regular (80) (por exemplo, em http://www.example.com/confluence e http://www.example.com/jira). Cada aplicação pode ser reiniciada, gerenciada e depurada separadamente.

Nota: 

Error rendering macro 'excerpt-include'

No link could be created for '_NoteAboutSpecificApacheConfiguration'.

Nesta página:

 

 

Configuração básica

Nestes exemplos, usamos o seguinte:

http://www.example.com/confluence - o URL desejado

http://exemplo:8090 – o nome do host e a porta em que o Confluence está atualmente instalado

http://exemplo:8091 – o nome do host e a porta padrão do Synchrony, o serviço que alimenta a edição colaborativa

/confluence – o caminho de contexto desejado para o Confluence (a parte depois do nome do host e porta)

/synchrony – o caminho de contexto para Synchrony, o processo que alimenta a edição colaborativa

Será necessário substituir esses URLs com seus próprios URLs.

1 Configure o caminho do contexto

(warning) Se desejar acessar o Confluence sem um caminho de contexto, como em www.exemplo.com, ignore este passo.

Configure seu caminho de aplicação Confluence (a parte após o nome de host e porta) no Tomcat.  Neste exemplo, o caminho de contexto será /confluence

Edite <installation-directory>conf/server.xml, localize a definição "Context":

<Context path="" docBase="../confluence" debug="0" reloadable="true">

e alterando-a para:

<Context path="/confluence" docBase="../confluence" debug="0" reloadable="true">

Reinicie o Confluence e verifique se consegue acessá-lo em http://example:8090/confluence.

2 Determinar o URL para redirecionamento

Em seguida, configure o URL para redirecionamento. No mesmo arquivo <installation-directory>conf/server.xml, localize o seguinte segmento de código:

<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
                maxThreads="48" minSpareThreads="10"
                enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8"
                protocol="org.apache.coyote.http11.Http11NioProtocol" />

E adicione proxyName, proxyPort e Scheme  como demonstrado na última linha abaixo:

<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
                maxThreads="48" minSpareThreads="10"
                enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8"
                protocol="org.apache.coyote.http11.Http11NioProtocol" 
                proxyName="www.example.com" proxyPort="80" scheme="http"/>

Se estiver usando SSL, o esquema será "https"

3 Configure mod_proxy

Utilize um dos exemplos abaixo para editar seu arquivo Apache http.conf  para pedidos de proxy para o servidor da aplicação.

(warning) Será necessário habilitar os seguintes módulos Apache requeridos, se eles já não estiverem habilitados:

  • mod_proxy
  • mod_proxy_http
  • proxy_wstunnel 
  • mod_rewrite

(proxy_wstunnel e mod_rewrite são novos requisitos do Confluence 6.0)

O formato do arquivo http.conf  e localização dos módulos podem ser diferentes no seu sistema operacional. Recomendamos aos usuários de Windows que especifiquem o caminho absoluto aos arquivos de módulo.

Exemplo 1: Configuração com caminho de contexto

Use este exemplo se você configurou um caminho de contexto no passo 1 e acessará o Confluence com um caminho de contexto como este http://www.example.com/confluence.  

Neste exemplo, os usuários conectarão ao Synchrony, que é necessário para edição colaborativa, diretamente através de WebSockets. 

(warning) A ordem das diretivas na configuração é importante. 

Apache HTTP server 2.4
# Coloque isto após as outras diretivas LoadModule,
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module /usr/lib/apache2/modules/mod_proxy_wstunnel.so
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

# Coloque isto na seção principal da sua configuração (ou host virtual, se estiver usando host virtuais Apache)
ProxyRequests Off
ProxyPreserveHost On

<Proxy *>
    Require all granted
</Proxy>

ProxyPass /synchrony http://localhost:8091/synchrony
<Location /synchrony>
    Require all granted
    RewriteEngine on
    RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
    RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
    RewriteRule .* ws://localhost:8091%{REQUEST_URI} [P]
</Location>
 
ProxyPass /confluence http://<domain>:8090/confluence
ProxyPassReverse /confluence http://<domain>:8090/confluence

<Location /confluence>
    Require all granted
</Location>

Notas: Não é possível usar Apache HTTP Server 2.2 com Confluence 6.0 ou posterior. Se você planeja usar SSL, será necessária a versão 2.4.10 ou posterior. 

Exemplo 2: Configuração sem caminho de contexto 

Use este exemplo se você ignorou o passo 1 e acessará o Confluence sem um caminho de contexto como este http://www.example.com.

Como no exemplo anterior, os usuários conectarão ao Synchrony, que é necessário para edição colaborativa, diretamente através de WebSockets. 

(warning) A ordem das diretivas na configuração é importante. 

Apache HTTP server 2.4
# Coloque isto após as outras diretivas LoadModule,
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module /usr/lib/apache2/modules/mod_proxy_wstunnel.so
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

# Coloque isto na seção principal da sua configuração (ou host virtual, se estiver usando host virtuais Apache)
 
  ProxyRequests Off
  ProxyPreserveHost On
    
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !^/synchrony
  RewriteRule ^/(.*) http://<domain>:8090/$1 [P]

  <Proxy *>
      Require all granted
  </Proxy>

  ProxyPass /synchrony http://<domain>:8091/synchrony

  <Location /synchrony>
      Require all granted
      RewriteEngine on
      RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
      RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
      RewriteRule .* ws://<domain>:8091%{REQUEST_URI} [P]
  </Location>

  ProxyPass / http://<domain>:8090
  ProxyPassReverse / http://<domain>:8090
   
  <Location />
      Require all granted
  </Location>

Nota: Não é possível usar Apache HTTP Server 2.2 com Confluence 6.0 ou posterior. Se você planeja usar SSL, será necessária a versão 2.4.10 ou posterior. 

4 Reinicie o Apache

Isso é necessário para registrar a nova configuração. Para reiniciar o Apache, execute o seguinte comando:

sudo apachectl graceful

5 Desabilite a compressão HTTP

Executar a compressão tanto no proxy quanto no Tomcat pode causar problemas na integração com outras aplicações Atlassian, como JIRA. Desabilite a compressão HTTP conforme as instruções em Comprimir uma resposta HTTP dentro do Confluence.

6 Altere o URL base do Confluence

O último passo é configurar o URL base para o endereço que você está usando dentro do proxy, por exemplo http://www.example.com/confluence.

Adicionando SSL

Mais informações

Last modified on Aug 7, 2017

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.