我想使用反向代理在公共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;