У меня возникают проблемы с настройкой SSL для моего сервера Jenkins CI. Я использую Jenkins за nginx для обратного прокси. Я получаю это upstream prematurely closed connection while reading response header from upstream
ошибки в моем 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"
Дженкинс готов к работе. Я могу подключиться через https://<SERVER IP ADDR>:8080
(хотя Chrome жалуется на сертификат). nginx дает мне 502 Bad Gateway
сообщение для официального URL-адреса.
конфигурация, доступная для сайтов:
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;
}
}
Проблема была в самом Дженкинсе. Изначально мы отключили порт http для Jenkins и разрешили только https. Как только мы снова разрешили http, мы разрешили запросы только от 127.0.0.1, и это решило наши проблемы.
tl; dr: включить порт http, разрешить запросы только через 127.0.0.1