我正在尝试使用nginx docker映像作为反向代理,以根据路径在2个不同的容器之间路由。一个容器包含一个静态HTML文件,另一个容器是一个nodeJS应用程序
这是我的Nginx反向代理容器的proxy.config文件
server {
listen 80;
location / {
proxy_pass http://app;
}
location /hello {
proxy_pass http://node-app;
}
}
app容器是一个简单的nginx容器,带有一个静态HTML文件,该文件显示HELLO WORLD,而node-app容器是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"
这是我的nodeJS应用程序的index.js
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}`);
关于我要怎么做的任何想法?
运行此命令时,当我在http://localhost上获取代码时,它将在'app'容器中为我提供静态页面。但是,当我转到http://localhost/hello时,它显示502错误的网关。
但是当我转到localhost:8080时,将提供NodeJS响应。我只需要一种将其路由到localhost / hello
的方法任何帮助将不胜感激。谢谢!