O JIRA se torna inacessível após adicionar “address = 127.0.0.1” no conector do Tomcat

1

Eu tenho o JIRA e o Nginx em execução no mesmo servidor com o Nginx instalado para servir como um proxy reverso. Pelo que aprendi de várias fontes, no arquivo server.xml, devo adicionar um atributo address="127.0.0.1" para que o Tomcat não escute os IPs externos. Mas depois que adiciono isso aos meus conectores 8080 e 8443, as coisas param de funcionar, ou seja, o site do JIRA fica inacessível. O navegador exibe erros de conexão recusada / conexão expirada.

Aqui está a configuração do arquivo server.xml para o Tomcat.

<Connector port="8080" 
address="127.0.0.1" 
maxThreads="150" 
minSpareThreads="25" 
connectionTimeout="20000" 
enableLookups="false" 
maxHttpHeaderSize="8192" 
protocol="HTTP/1.1" 
useBodyEncodingForURI="true" 
acceptCount="100" 
redirectPort="8443" 
disableUploadTimeout="true" 
proxyName=<FQDN> 
proxyPort="80"/>

<Connector port="8443" 
address="127.0.0.1" 
SSLEnabled="true" 
acceptCount="100" 
clientAuth="false" 
connectionTimeout="20000" 
disableUploadTimeout="true" 
enableLookups="false" 
keyAlias=<value> 
keystoreFile=<jks file> 
keystorePass=<password> 
keystoreType="JKS" 
maxHttpHeaderSize="8192" 
maxSpareThreads="75" 
maxThreads="150" 
minSpareThreads="25"  
protocol="org.apache.coyote.http11.Http11Protocol" 
scheme="https" 
secure="true" 
sslProtocol="TLS" 
useBodyEncodingForURI="true"/>

e a configuração do servidor Nginx na pasta habilitada para sites vinculada a sites disponíveis -

    server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    server_name <FQDN>;
    location / {
    proxy_pass http://127.0.0.1; #I have tried FQDN, real IP, :8080 suffix etc. but the response didn't change
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
}
}

O que está errado na minha abordagem? É em grande parte derivada do link exceto pela adição do atributo de endereço. O bloco de conexão HTTPS foi derivado (eu acho que foi gerado automaticamente quando eu o configurei) das instruções de habilitação SSL padrão da Atlassian.

Atualização 21 de abril : Aqui está o meu nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

Atualização 22 de abril Tentei executar o curl -v FQDN e recebi esta mensagem no log de erros. Terminal me mostrou 502 gateway ruim -

connect() failed (111: Connection refused) while connecting to upstream, client: <IP Address>, server: <FQDN>, request: "GET / HTTP/1.1", upstream: "http://<IP>:8080/", host: <FQDN> 
    
por Chethan S. 21.04.2016 / 13:20

2 respostas

1

Certifique-se de que o seu proxy do Nginx vá para "127.0.0.1" em vez do nome de host / IP do seu servidor / IP.

Se isso for feito, você pode ter um problema com o conector do Tomcat em IPV4 (forçado por 127.0.0.1) enquanto o Nginx está tentando acessá-lo na pilha do IPv6.

    
por 22.04.2016 / 08:52
1

Se o nginx estiver em execução, mas não puder se conectar ao servidor upstream, por exemplo, para o tomcat, você receberá um erro no estilo 50x e NÃO uma conexão recusada.

Browser reports site refused to connect. ERR_CONNECTION_REFUSED – Chethan S. Apr 21 at 15:34

Isso significa que você não pode se conectar ao nginx em primeiro lugar. Tem certeza de que está sendo executado?

A melhor maneira de solucionar o problema é ver o que está sendo executado em seu sistema e em quais portas e endereços IP. Por exemplo:

# lsof | fgrep -e LISTEN | fgrep -e tomcat -e nginx
nginx     25509              root   15u     IPv4           55825524      0t0        TCP *:http (LISTEN)
nginx     25529          www-data   15u     IPv4           55825524      0t0        TCP *:http (LISTEN)
nginx     25530          www-data   15u     IPv4           55825524      0t0        TCP *:http (LISTEN)
nginx     25531          www-data   15u     IPv4           55825524      0t0        TCP *:http (LISTEN)
nginx     25532          www-data   15u     IPv4           55825524      0t0        TCP *:http (LISTEN)

Certifique-se de ver o tomcat e o nginx lá.

Outra abordagem seria configurar um firewall (por exemplo, iptables) para negar qualquer tentativa de conexão às portas 8080 e 8443 do lado de fora, ou apenas permitir conexões externas às portas 22 e 80/443 em primeiro lugar.

    
por 28.04.2016 / 06:16