Я пытаюсь узнать о балансировщике нагрузки.
Я создал виртуальную машину на digitalOcean,
Я также подключился к этой виртуальной машине через шпаклевку.
Выполнены некоторые действия, такие как установка docker и git.
Я работаю на Ubuntu Docker 5: 19.03.1 ~ 3 18.04, это самая дешевая виртуальная машина из доступных.
введите описание изображения здесь
Эти два узла работают хорошо, я проверил его через почтальона и получил ответ, но всякий раз, когда я пытаюсь пропинговать через vm-IP: 80 Я получил тайм-аут.
Рекомендации, используемые для создания nginx
Запуск докера -d -p 80:80 --name nginx-micro nginx-micro
Рекомендации, используемые для создания nodejs
Докер run -d-p 5003: 2222 - имя hello1 привет
запуск Docker -d -p 5004: 2222 - имя hello2 привет
файл Docker используется для образа nginx
FROM nginx
COPY nginx.conf /etc/nginx/conf.d/default.conf
nginx.conf
upstream welcome {
least_conn;
server vm-ip:5003;
server vm-ip:5004;
}
server {
location / {
proxy_pass http://welcome;
}
}
Dockerfile node.js
FROM mhart/alpine-node
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
EXPOSE 2222
CMD [ "node", "server.js" ]
node.js
const express = require('express');
const os = require('os');
app.get('/', (req, res) => res.send(os.hostname()));
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
Я ожидаю разделить запрос между этими двумя узлами.Журналы из докера показывают 110 попыток при подключении к апстриму.
Я правильно это делаю?Есть ли готовое лучшее решение?Есть ли у вас какие-либо советы?
Оффтоп: шлюз должен быть расположен до или после контейнера балансировщика нагрузки?