在 Docker 中为 node.js+mongodb+basic Html 和 CSS 上运行的 Web 应用程序使用 nginx 进行反向代理设置> 不工作



我想使用反向代理在公共ip地址上为我的网站提供服务。但当我访问地址时,我得到的只是默认的nginx页面。这里是docker-compose.yml文件:

version: "3"
services:
app:
container_name: visualization_app
restart: always
build: .
volumes:
- .:/usr/src/app
ports:
- "4000:4000"
links:
- database
database:
container_name: mongo
image: mongo
ports:
- "27011:27017"
proxy:
image: nginx:1.17
restart: unless-stopped
ports:
- "8000:80"
volumes:
- ../nginx_conf/default.conf:/etc/nginx/conf.d/default.conf
- ./public:/srv/www/static
depends_on:
- app

这是我的nginx conf文件:

server{
listen 80;
root /srv/www/static;
location / {
proxy_pass          http://localhost:4000;
proxy_set_header    X-Real-IP   $remote_addr;
proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header    X-Forwarded-Proto http;
proxy_set_header    Host    $http_host;
client_max_body_size 17m;
proxy_http_version  1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header    Connection "upgrade";
}
}

这是Dockerfile:

FROM node:latest as build-stage
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install
COPY . /usr/src/app
CMD ["server.js","store.js"]

我正在尝试配置这个设置从3天,但似乎没有任何工作。请提供任何帮助,我们将不胜感激。

您的代理传递需要指向应用程序的主机。试用:

proxy_pass          http://app:4000;

最新更新