Как использовать докер Nginx в качестве обратного прокси-сервера для маршрутизации между двумя разными контейнерами? - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь использовать образ докера 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

Любая помощь будет очень признательна.Спасибо!

...