Nginx +服务Node.js +负载均衡器

时间:2019-09-24 22:30:16

标签: node.js nginx configuration load-balancing

我正在尝试了解负载均衡器。
我已经在digitalOcean上创建了VM,
我还通过腻子连接到了该虚拟机。
做一些类似安装docker和git的事情。

我在18.04上的Ubuntu Docker 5:19.03.1〜3上运行,这是最便宜的VM。

enter image description here

这两个节点运行良好,我已经通过邮递员检查了它并得到了响应,但是每当我尝试通过vm-ip:80 ping时,都会出现超时。

用于创建nginx的表彰
docker run -d -p 80:80 --name nginx-micro nginx-micro

用于创建nodejs的奖状
docker run -d -p 5003:2222 --name hello1 hello
docker run -d -p 5004:2222 --name hello2 hello

用于nginx映像的Dockerfile

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}!`));

我希望在这两个节点之间分配请求。 来自docker的日志显示110次尝试连接到上游。

我正确吗? 有没有更好的解决方案? 你有什么提示吗?

主题: 网关应该位于负载均衡器容器之前还是之后?

0 个答案:

没有答案