Integrar o JIRA ao Apache
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.
Etapa 1: Configurar o Tomcat
- Pare o JIRA.
Edite o
server.xml
do Tomcat para incluir o caminho de contexto do JIRA necessário. O exemplo a seguir usapath="jira"
, isso significa que o JIRA está acessível emhttp://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>
Garanta que o valor de
path
seja definido precedido por uma barra (/
). Por exemplo,path="/jira"
, em vez depath="jira"
.Edite o
server.xml
do Tomcat para incluir um conector separado para fazer proxy das solicitações. Isso requer os atributosproxyName
eproxyPort
. 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" 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" />
- Inicie o JIRA.
- Teste se o JIRA está acessível no conector normal, usando um caminho de contexto, se aplicável. Por exemplo,
http://jiraserver:8081/jira
. - Teste se o novo conector está em vigor acessando o JIRA no conector proxy adequado. O comportamento varia conforme o caminho do contexto:
- 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: - 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
).
- Se o caminho de contexto for vazio ou raiz (
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
Windows/outro sistema operacional
2.2. Configure o Apache para usar esses módulos
Debian/Ubuntu
Windows/outro sistema operacional
Etapa 3: Configurar o JIRA
- 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.
- 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.
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.
- 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
.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
(emod_jk
) em distribuições Linux que usam SELinux: Os usuários relataram erros de "permissão negada" ao tentarem fazermod_proxy
(emod_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.
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:
- Limpe o cache do navegador e tente novamente.
- 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. - Aumente o LogLevel para o Apache a fim de depurar e reinicie-o.
- Tente acessar o JIRA e consulte os Arquivos de registro do Apache para verificar se há algum erro.
- 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
- Integrar o JIRA ao Apache usando SSL
- Configurar o proxy reverso do Apache usando o protocolo AJP
- Para obter mais configurações de
mod_webapp
mais avançadas (por exemplo, SSL), consulte este guia de mod_proxy. - Documentação do host virtual do Apache