conexão encerrada prematuramente durante a leitura do cabeçalho de resposta do desenvolvedor

6

Estou tendo problemas ao configurar o SSL para o meu servidor de CI do Jenkins. Eu uso o Jenkins por trás do nginx para um proxy reverso. Eu estou recebendo esses upstream prematurely closed connection while reading response header from upstream erros no meu arquivo jenkins.error.log .

2014/09/30 13:01:49 [error] 4875#0: *1 upstream prematurely closed connection while reading response header from upstream, client: <MY IP ADDR>, server: jenkins.<SERVER URL>.com, request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:8080/favicon.ico", host: "jenkins.<SERVER URL>.com"
2014/09/30 13:01:50 [error] 4875#0: *1 upstream prematurely closed connection while reading response header from upstream, client: <MY IP ADDR>, server: jenkins.<SERVER URL>.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8080/", host: "jenkins.<SERVER URL>.com"

Jenkins está em funcionamento. Consigo me conectar via https://<SERVER IP ADDR>:8080 (mesmo que o Chrome reclama do certificado). O nginx me dá uma mensagem 502 Bad Gateway para o URL oficial.

configuração de sites disponíveis:

upstream jenkins {
    server 127.0.0.1:8080 fail_timeout=0;
}

server {
  listen 80;
  return 301 https://$host$request_uri;
}

server {
  listen 443;
  #listen [::]:443 default ipv6only=on;
  server_name jenkins.<SERVER URL>.com <SERVER IP ADDR>;

  ssl on;
  ssl_certificate /etc/nginx/ssl/jenkins.<SERVER URL>.com.chained.crt;
  ssl_certificate_key /etc/nginx/ssl/<SERVER URL>.com.key;

  access_log /etc/nginx/logs/jenkins.access.log;
  error_log /etc/nginx/logs/jenkins.error.log;

  location / {
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        X-Forwarded-Proto $scheme;
    proxy_redirect          http:// https://;
    proxy_pass              http://jenkins;
  }
}
    
por Bryan Sills 30.09.2014 / 20:28

1 resposta

2

A questão era com o próprio Jenkins. Inicialmente, desativamos a porta http do Jenkins e permitimos apenas https. Depois que permitimos o http novamente, só permitimos solicitações do 127.0.0.1 e isso solucionou nossos problemas.

tl; dr: ativa a porta http, permite somente requisições através do 127.0.0.1

    
por 30.09.2014 / 20:32