Настройка среды
У меня есть приложение, которое состоит из нескольких служб:
- сервер jenkins
- nginx сервер с angular
- nginx сервер в качестве прокси
Эти службы определены в файле docker-compose
:
version: '3'
services:
reverse:
container_name: reverse-proxy
build:
context: /app/mywallet/MyWalletFe/reverse-proxy
ports:
- "80:80"
networks:
- net
jenkins:
container_name: jenkins
image: jenkins/jenkins
volumes:
- "$PWD/jenkins_home:/var/jenkins_home"
- "/var/run/docker.sock:/var/run/docker.sock"
networks:
- net
angular:
container_name: mywallet_fe
build:
context: /app/mywallet/MyWalletFe
networks:
- net
networks:
net:
Я определил следующий файл конфигурации для reverse-proxy
:
upstream client {
# angular is the name of the service in docker-compose file
server angular:4200;
}
upstream jenkins {
server jenkins:8080;
}
server {
listen 80;
location / {
proxy_pass http://client;
}
location /jenkins {
proxy_pass http://jenkins;
}
}
Наконец, вот Dockerfile
для службы reverse-proxy
, которая копирует файл конфигурации в контейнер nginx:
FROM nginx
# override default files if present
COPY ./default.conf /etc/nginx/conf.d/default.conf
Цель
Моя цель - получить доступ к Jenkins с помощью SERVER_IP/jenkins
Вывод
Когда я запускаю все приложение и пытаюсь получить доступ к SERVER_IP/jenkins
, я получаю следующую ошибку в обратном порядке: журналы прокси:
2020/04/15 21:44:55 [ошибка] 6 # 6: * 10 connect () не удалось (111: соединение отклонено) при подключении к восходящему каналу, клиент: MY_CLIENT_IP, сервер:, запрос: "GET / login? from =% 2Fjenkins HTTP / 1.1", восходящий поток: "http://172.18.0.5: 4200 / login? from =% 2Fjenkins ", хост: "SERVER_IP", реферер: " http://SERVER_IP / jenkins"MY_CLIENT_IP
[15 / Apr / 2020: 21: 44: 55 +0000]" GET /favicon.ico HTTP / 1.1 "502 559" http://SERVER_IP / login? from =% 2Fjenkins"" Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537,36 (K HTML, как у Gecko) Chrome / 80.0.3987.163 Safari / 537.36 "" - "2020/04/15 21:44:55 [ошибка] 6 # 6: * 10 Ошибка подключения () ( 111: соединение отклонено) при подключении к восходящему каналу, клиенту: MY_CLIENT_IP, серверу:, запрос: «GET /favicon.ico HTTP / 1.1», восходящий поток: «http://172.18.0.5: 4200 / favicon.ico », хост: "SERVER_IP", реферер: "http://SERVER_IP / login? from =% 2Fjenkins "
где MY_CLIENT_IP
- это IP моего ноутбука, а SERVER_IP
- это IP сервера, на котором выполняется приложение.
Что не так в конфигурации обратного прокси-сервера? Если я предоставляю сервисы jenkins и angular, я могу связаться с ними, а через прокси-сервер не могу .
Аналогичный вопрос, который мне не помогает (или я не понимаю, как это мне поможет)