У меня есть Ubuntu 18.04 сервер, работающий в Droplet (DigitalOcean), защищенный с помощью SSL и использующий обратный прокси Nginx . Также Jenkins работает на моем сервере (не в любом докере) и настроен для доступа в домене, который я создал для него: jenkins.testdomain.com (все эти шаги следуют за документами DO)
Таким образом, цель состоит в том, чтобы управлять развертыванием приложения Node.js-React на моем testdomain.com позже, сейчас я просто хочу создать папку dist , сгенерированную после'npm build' в / var / lib / jenkins / workspace /, просто так.
Теперь я могу получить доступ к своему сайту jenkins.testdomain.com, запустить конвейер для запускапроцесс после подталкивания к моему репо и запуску этапов;но это здесь, когда начинается сбой nginx, когда конвейер достигает фазы Deliver (давайте прочитаем фазу 'npm build'), иногда в фазе Build ('npm install').
Именно на этом этапе, читаявывод на консоль Jenkins, где я вижу, когда он застревает и в итоге выдает ошибку 502 Bad Gateway . Мне нужно будет запустить команду systemctl restart Jenkins
в консоли сервера, чтобы снова получить доступ. После перезапуска конвейер возобновляет работу и, похоже, выполняет свою работу: /
В /var/log/nginx/error.log для nginx я могу прочитать:
* 1 ошибка подключения () (111: соединение отклонено) при подключении к восходящему каналу, клиент: 85.146.85.194, сервер: jenkins.testdomain.com, запрос: «GET / job / Basic% 20NodeJS-React%20app / 8 / console HTTP / 1.1 ", upstream:" https: //127.0.0.1:8080/job/Basic%20NodeJS-React%20app/8/console ", хост:" jenkins.testdomain.com ", реферер:"https: //jenkins.testdomain.com/job/Basic%20NodeJS-React%20app/8/"
* 1 Ошибка SSL_do_handshake () (SSL: ошибка: 1408F10B: процедуры SSL: ssl3_get_record: неправильная версияномер) во время установления SSL-соединения с восходящим потоком, клиент: 85.146.85.194, сервер: jenkins.testdomain.com, запрос: «GET /favicon.ico HTTP / 1.1», восходящий поток: «https: //127.0.0.1:8080/favicon. ico ", хост:" jenkins.testdomain.com ", реферер:" https: //jenkins.testdomain.com/job/Basic%20NodeJS-React%20app/8/console "...
ВJenkinsfile моего приложения node-js-реакции ( из репозитория jenkins ), агент выглядит следующим образом:
pipeline {
agent {
docker {
image 'node:6-alpine'
args '-p 3000:80'
}
}
environment {
CI = 'true'
}
stages {
// Build, Test, and Deliver stages
}
}
И моя конфигурация jenkins.testdomain.com (/ etc / nginx / sites-available / jenkins.testdomain.com ) примерно так (пройти тесты от nginx -t):
server {
listen 80;
root /var/www/jenkins.testdomain.com/html;
server_name jenkins.testdomain.com www.jenkins.testdomain.com;
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;
# Fix the "It appears that your reverse proxy set up is broken" error.
proxy_pass http://localhost:8080;
# High timeout for testing
proxy_connect_timeout 1200s;
proxy_send_timeout 1200s;
proxy_read_timeout 1200s;
proxy_redirect http://localhost:8080 https://jenkins.testdomain.com;
# Required for new HTTP-based CLI
proxy_http_version 1.1;
proxy_request_buffering off;
# Required for HTTP-based CLI to work over SSL
proxy_buffering off;
}
# Certbot auto-generated lines...
}
Любая помощь будет приветствоваться 3 дня, борясь с этим и играявокруг с различными директивами proxy_ от nginx и так ... Заранее спасибо!