Integrar o JIRA ao Apache

Error rendering macro 'viewport-redirect'

null

As aplicações Atlassian permitem o uso de proxies reversos nos nossos produtos. Entretanto, o suporte da Atlassian não fornece assistência para configurá-los. Consequentemente, a Atlassian não pode garantir o fornecimento de suporte para eles.

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

Esta página descreve como integrar o servidor Apache HTTP (também chamado de httpd) ao JIRA utilizando mod_proxy para que o Apache opere como proxy reverso em HTTP. Se for necessária configuração de HTTPS, consulte nossa documentação do Integrar o JIRA ao Apache usando SSL. Configurar o Apache permite executar o JIRA em uma porta HTTP não padrão (como 8080), e os usuários poderão acessar o JIRA usando HTTP padrão, uma vez que seu tráfego será roteado pelo proxy.

O Apache pode ser configurado para permitir acesso ao JIRA por qualquer um dos métodos a seguir:

Essa documentação cobrirá uma implementação simples do mod_proxy usando as três configurações acima. Se houver necessidade de uma solução mais complicada, consulte a documentação da versão do servidor Apache HTTP, consulte o SME do Apache na sua organização e, se necessário, registre sua pergunta em Atlassian Answers ou entre em contato com um de nossos parceiros Atlassian.

Expanda para obter um exemplo de uma configuração comum do Apache
  1. O JIRA está em execução na porta 8080 em um servidor na LAN que não pode ser acessado externamente (o roteador/firewall não está encaminhado a porta 8080 para ele).
  2. O Apache é configurado em outro servidor (ou no mesmo servidor que o JIRA), que pode ser acessado externamente em HTTP (80).
  3. O Apache, então, é acessado por HTTP no URL adequado URL (VirtualHost), roteando o tráfego de e para o servidor JIRA.

Nesta página:

Etapa 1: Configurar o Tomcat

  1. Pare o JIRA.
  2. Edite o server.xml do Tomcat para incluir o caminho de contexto do JIRA necessário. O exemplo a seguir usa path="jira", isso significa que o JIRA está acessível em http://jiraserver:8080/jira, considerando que a porta padrão do JIRA seja usada.

    Esta etapa será necessária apenas se o JIRA for ser acessado em um caminho de contexto, por exemplo http://atlassian.com/jira. Se isso não for necessário, essa etapa poderá ser ignorada.

     <Engine defaultHost="localhost" name="Catalina">
                <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
                    <Context docBase="${catalina.home}/atlassian-jira" path="/jira" reloadable="false" useHttpOnly="true">
    
                        <!--
                         ====================================================================================
                         Note, you no longer configure your database driver or connection parameters here.
                         These are configured through the UI during application setup.
                         ====================================================================================
                        -->
                        <Resource auth="Container" factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60" name="UserTransaction" type="javax.transaction.UserTransaction"/>
                        <Manager pathname=""/>
                    </Context>
                </Host>

    (info) Garanta que o valor de path seja definido precedido por uma barra (/). Por exemplo, path="/jira", em vez de path="jira".

  3. Edite o server.xml do Tomcat para incluir um conector separado para fazer proxy das solicitações. Isso requer os atributos proxyName e proxyPort.  Substitua-os pelo domínio e a porta adequada do proxy, conforme o exemplo a seguir:

    <Service name="Catalina">
     
    	<!-- Apache Proxy Connector -->
            <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"&nbsp;
                proxyName="jira.atlassian.com" proxyPort="80"/> 
    
    	<!-- Standard HTTP Connector -->
            <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" port="8081" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true" />
  4. Inicie o JIRA.
  5. Teste se o JIRA está acessível no conector normal, usando um caminho de contexto, se aplicável. Por exemplo, http://jiraserver:8081/jira.
  6. Teste se o novo conector está em vigor acessando o JIRA no conector proxy adequado. O comportamento varia conforme o caminho do contexto:
    1. Se o caminho de contexto for vazio ou raiz (/), acessar o JIRA por meio do conector proxy (por exemplo,  http://jiraserver:8080/) deve levá-lo ao JIRA com um aviso:


    2. Se o caminho de contexto for diferente de vazio ou raiz (/), por exemplo, /jira, visitar o JIRA por meio do conector proxy (por exemplo, http://jiraserver:8080/jira) deverá redirecioná-lo ao proxy configurado (por exemplo, https://jira.atlassian.com/jira). 

Etapa 2: Configurar o servidor Apache HTTP

A instalação do Apache e a configuração de um DNS não são abordadas nesta documentação. Além disso, presume-se que o Apache 2.2 tenha sido instalado e as entradas DNS tenham sido configuradas para o domínio do JIRA. Uma vez que a configuração do Apache é específica para o sistema operacional utilizado, somente algumas distribuições e suas configurações são documentadas no momento.

2.1 Habilitar os módulos proxy

Debian/Ubuntu
Expanda para ver as instruções do Debian/Ubuntu
  1. Habilite o módulo com o seguinte:

    $ sudo a2enmod proxy_http
    Considering dependency proxy for proxy_http:
    Habilitar o módulo proxy.
    Habilitar o módulo proxy_http.
    Para ativar a nova configuração, é preciso executar:
      service apache2 restart
  2. Reinicie o Apache.
Windows/outro sistema operacional
Expanda para ver as instruções do Windows/outro sistema operacional
  1. Localize e edite o arquivo httpd.conf, adicionando as linhas abaixo:

    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so 
    LoadModule proxy_http_module modules/mod_proxy_http.so
  2. Reinicie o Apache.

2.2. Configure o Apache para usar esses módulos

Debian/Ubuntu
Expanda para ver as instruções do Debian/Ubuntu
  1. Mude para o usuário root.
  2. Faça backup da instância existente ou crie uma nova. A criação de uma nova instância não é abordada nesta documentação (copiar o padrão deve ser suficiente).
  3. Modifique a instância existente em $APACHE_INSTALL/sites-available, por exemplo, default.
  4. Adicione o seguinte em VirtualHost, substituindo jiraserver pelo nome de host do servidor JIRA e também modificando a porta, se necessário.

    No próprio domínio ou subdomínio:
    # Configuração de proxy do JIRA:
    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>
    
    ProxyRequests           Off
    ProxyPreserveHost       On
    ProxyPass               /       http://jiraserver:8080/
    ProxyPassReverse        /       http://jiraserver:8080/

    (info) A ausência da barra no final do URL causará erros de proxy – garanta que ela esteja lá!

    Usar um caminho de contexto:
    # Configuração de proxy do JIRA:
    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>
    
    ProxyRequests           Off
    ProxyPreserveHost       On
    ProxyPass               /jira       http://jiraserver:8080/jira
    ProxyPassReverse        /jira       http://jiraserver:8080/jira

    (info) O caminho usado deve ser idêntico ao caminho de contexto do Tomcat. Por exemplo, não é possível encaminhar /jira para /jira520 sem regras de regravação consideráveis, que nem sempre são confiáveis.

  5. (Opcional): Habilite a instância com o seguinte:

    # a2ensite jira
    Enabling site jira.
    Para ativar a nova configuração, é preciso executar:
      service apache2 reload

    (info) Isso é necessário apenas se uma nova instância tiver sido criada em vez de usar o padrão.

  6. Recarregue a configuração do Apache.
  7. Teste acessando o JIRA por meio do Apache, por exemplo, http://jira.com ou http://atlassian.com/jira.
Windows/outro sistema operacional
Expanda para ver as instruções do Windows/outro sistema operacional
  1. Localize e edite o arquivo httpd.conf.
  2. Adicione o seguinte em VirtualHost, substituindo jiraserver pelo nome de host do servidor JIRA e também modificando a porta, se necessário.

    No próprio domínio ou subdomínio:

    # Configuração de proxy do JIRA:
    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>
    
    ProxyRequests           Off
    ProxyPreserveHost       On
    ProxyPass               /       http://jiraserver:8080/
    ProxyPassReverse        /       http://jiraserver:8080/

    (info) A ausência da barra no final do URL causará erros de proxy – garanta que ela esteja lá!

    Usar um caminho de contexto:

    # Configuração de proxy do JIRA:
    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>
    
    ProxyRequests           Off
    ProxyPreserveHost       On
    ProxyPass               /jira       http://jiraserver:8080/jira
    ProxyPassReverse        /jira       http://jiraserver:8080/jira

    (info) O caminho usado deve ser idêntico ao caminho de contexto do Tomcat. Por exemplo, não é possível encaminhar /jira para /jira520 sem regras de regravação consideráveis, que nem sempre são confiáveis.

  3. Reinicie o Apache.
  4. Teste acessando o JIRA por meio do Apache, por exemplo, http://jira.com ou http://atlassian.com/jira.

Etapa 3: Configurar o JIRA

  1. Defina Usar compactação gzip como OFF, como em Configurar opções do JIRA. Sabe-se que a compactação GZIP causa problemas de desempenho usando um proxy reverso, especialmente se o proxy também estiver compactando o tráfego.
  2. Defina o URL de base como sendo o FQDN em que o JIRA será acessado, por exemplo, http://jira.atlassian.com. Isso também está localizado em Configurar as opções do JIRA.
    (warning) O JIRA pode ser configurado somente para responder a um único URL, e o URL de base (como em Configurar opções do JIRA) deve corresponder ao URL que os usuários finais estão acessando. A configuração incorreta desse item pode causar problemas significativos no JIRA, como falha no funcionamento correto do fluxo de atividade e dos gadgets do painel.
  3. Teste acessando o JIRA no FQDN (por exemplo: http://jira.atlassian.com), garantindo que o JIRA esteja acessível e todos os gadgets sejam exibidos corretamente.

Solucionar problemas

  • Sessões sequestradas: Alguns usuários relataram problemas de sequestro de sessões de usuário quando o módulo mod_cache estava ativado. Se esses problemas forem encontrados, tente desabilitar o módulo mod_cache.  
    (info) Esse módulo é habilitado por padrão em algumas distribuições do servidor Apache HTTP versão 2.
  • Erros de permissão negada habilitando mod_proxy (e mod_jk) em distribuições Linux que usam SELinux: Os usuários relataram erros de "permissão negada" ao tentarem fazer mod_proxy (e mod_jk) funcionar. Desabilitar o SELinux (/etc/selinux/config) aparentemente corrige isso.
  • Executar o Mac OS X: Desabilite webperfcache, que faz a porta 80 de proxy por padrão. Um usuário relatou isso como a causa provável de problemas de sessão do JIRA na forma de mistura das identidades de usuários, conforme abaixo.
    (warning) Além disso, não recomendamos usar Max OS X, uma vez que ele não tem suporte, como em nossas Plataformas com suporte.

Os servidores OSX habilitam o webperfcache por padrão para hosts virtuais, o que seria ótimo para conteúdo estático, porém, para instâncias dinâmicas (como TODAS as nossas instâncias), ele é inadequado e causará muitos problemas. 
É importante lembrar que, recentemente, houve um problem de sessões no JIRA. Consulte também: -
http://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/webperfcache.8.html
Infelizmente, mesmo que você desative webperfcache para uma instância, se houver uma única instância habilitada, ainda todas as instâncias terão o proxy por meio de webperfcache, resultando em problemas na sessão.

  • Redirecionamentos em excesso: Tanto Tomcat quanto Apache estão redirecionando, quando apenas um deveria estar. Desabilite o redirecionamento no Tomcat (reverta quaisquer alterações como em Executar o JIRA por SSL ou HTTPS) e verifique se há somente uma direção no Apache.
  • Problemas gerais:
    1. Limpe o cache do navegador e tente novamente.
    2. Verifique se o JIRA funciona conforme o esperado ao executá-lo diretamente do Tomcat e ignorando o Apache. Por exemplo, acessando http://jiraserver:8080, em vez de http://jira.atlassian.com.
    3. Aumente o LogLevel para o Apache a fim de depurar e reinicie-o.
    4. Tente acessar o JIRA e consulte os  Arquivos de registro do Apache para verificar se há algum erro.
    5. Faça uma pergunta em Atlassian Answers para obter assistência.
  • Erro 403 Proibido: 
    • Adicione a linha RequestHeader unset Authorization à página de configuração do Apache para desabilitar os cabeçalhos de autorização.

      <Location /jira>
        RequestHeader unset Authorization
        ProxyPreserveHost On
        ProxyPass http://jiraserver/jira
        ProxyPassReverse http://jiraserver/jira
      </Location>

Consulte também

Last modified on Jun 28, 2017

Was this helpful?

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