Executando o Confluence por trás do NGINX com SSL
Esta página descreve como configurar o NGINX como proxy reverso para o Confluence.
A configuração descrita nesta página resulta em uma situação na qual:
- Conexões de cliente externo com NGINX são protegidas com o uso de SSL. Conexões entre NGINX e Confluence Server não são protegidas.
- Confluence Server e NGINX são executados na mesma máquina.
Nesta página
Partimos do princípio de que você já tem uma instância operacional do NGINX. Caso não tenha, consulte a documentação do NGINX para obter instruções sobre o download e a instalação do NGINX. Certificados SSL precisam ser instalados na máquina do servidor. Será necessária uma versão do NGINX que suporte WebSockets (1.3 ou mais recente).
Observe que o Suporte da Atlassian não abrange a integração com o NGINX. Assistência com o NGINX pode ser obtida por meio da comunidade Atlassian em answers.atlassian.com ou com um Especialista Atlassian.
Passo 1: Definir o caminho de contexto
Configure seu caminho de aplicação Confluence (a parte após o nome de host e porta) no Tomcat. Edite <installation-directory>/conf/server.xml
, localize a definição "Context":
<Context path="" docBase="../confluence" debug="0" reloadable="false">
e altere para:
<Context path="/confluence" docBase="../confluence" debug="0" reloadable="false">
Reinicie o Confluence e verifique se é possível acessá-lo em http://example:8090/confluence
Passo 2. Configurar o conector do Tomcat
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 a última linha, conforme a seguir:
<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="443" scheme="https"/>
Nota: não inclua secure="true"
neste conector. Certifique-se de ter incluído os valores corretos para protocol
e proxyName
.
Passo 3: Configure o NGINX
Você precisará especificar um servidor receptor no NGINX, conforme no exemplo abaixo. Adicione o seguinte na configuração do seu NGINX.
Substitua o nome do seu servidor e o local do seu certificado SSL e chave.
Neste exemplo, os usuários conectarão ao Synchrony, que é necessário para edição colaborativa, diretamente.
server {
listen www.example.com:80;
server_name www.example.com;
listen 443 default ssl;
ssl_certificate /usr/local/etc/nginx/ssl/nginx.crt;
ssl_certificate_key /usr/local/etc/nginx/ssl/nginx.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location /confluence {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8090/confluence;
}
location /synchrony {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8091/synchrony;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
Consulte http://nginx.org/en/docs/http/ngx_http_proxy_module.html para obter mais informações.
Nota: não inclua ssl on;
se estiver configurando o SSL e o Confluence no mesmo servidor, como neste exemplo.
Passo 4: Reinicie o Confluence e o NGINX
- Reinicie o Confluence e o NGINX para que todas as alterações entrem em vigor.
- Atualize o URL base do Confluence para incluir o caminho de contexto definido anteriormente – consulte Configurando o URL base do servidor.