Я пытаюсь использовать образ докера nginx в качестве обратного прокси для маршрутизации между 2 различными контейнерами в зависимости от пути.Один контейнер содержит статический HTML-файл, а другой - приложение nodeJS
Это мой файл proxy.config для контейнера обратного прокси nginx
server {
listen 80;
location / {
proxy_pass http://app;
}
location /hello {
proxy_pass http://node-app;
}
}
Контейнер приложения представляет собой простой контейнер nginx сСтатический HTML-файл, в котором говорится, что HELLO WORLD и контейнер приложения-узла, является приложением nodeJS.
Это мой docker-compose.yml
version: '3.1'
services:
app:
build: app
node-app:
build: node-app
ports:
- "8080:8080"
proxy:
build: nginx-reverseproxy
ports:
- "80:80"
А это index.js для моего приложения nodeJS
const express = require('express');
// Constants
const PORT = 8080;
// App
const app = express();
app.get('/', (req, res) => {
res.send('Hello world\n');
});
app.listen(PORT);
console.log(`Running on ${PORT}`);
Есть идеи о том, что я ошибаюсь?
Когда я запускаю это, он показывает мне статическую страницу в контейнере 'app', когда я получаю http://localhost. Однако, когда я перехожу на http://localhost/hello,, он показывает мне 502 BadШлюз.
Но когда я перехожу на localhost: 8080, ответ NodeJS подается.Мне просто нужен способ направить это на localhost / hello
Любая помощь будет очень признательна.Спасибо!