node.js - 使用 nginx 为在 node.js+mongodb+basic Html 和 Docker 中的 CSS 上运行的 Web 应用程序设置反向代理=> 不工作
问题描述
我想使用反向代理在公共 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 配置文件:
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;
推荐阅读
- stata - 为什么与更新合并不能按预期工作?
- python - 如何在字典中按值访问键?
- python - 如何使用 F 表达式在 update() 中为每个 PointField 分配经纬度?
- maps - OSM 3d 瓦片集 JSON 文件
- google-sheets - 如何在 Google 表格中根据星期几突出显示单元格?
- java - 使用 Runtime.getRuntime() 在 Java 中运行命令行
- javascript - 如何使用 Chart.js 为每条数据添加图例?
- javascript - 如何使用中间件为 REST API 创建用户组安全性
- php - 如何生成/创建我自己的 PHP CLI 命令
- excel - 如何在 Automation Anywhere 中不使用宏或 VBA 比较 2 个 Excel 工作簿?(仅使用 AA 中可用的命令)