【发布时间】:2018-05-21 06:23:09
【问题描述】:
所以我试图按照示例here 做一个 nginx 代理容器来处理所有其他容器。我尝试遵循配置环境变量的格式,以便站点通过 nginx-proxy 工作。到目前为止,如果我使用 80 或 443 以外的端口,我只部署了一个站点。我想知道我可以得到任何帮助,我在下面粘贴了两个文件。
Dockerfile
FROM node:carbon
# Create app directory
WORKDIR ./home/username/website/production
COPY package*.json ./
RUN npm install
# Bundle app source
COPY . .
EXPOSE 8080
CMD [ "npm", "start" ]
docker-compose.yml
version: "3"
services:
website:
build: .
volumes:
- .:/home/user/website
- ./home/user/website/node_modules
ports:
- "8080:8080"
expose:
- 80
environment:
VIRTUAL_HOST: domain.com
LETSENCRYPT_HOST: domain.com
LETSENCRYPT_EMAIL: domain.com
networks:
default:
external:
name: nginx-proxy
我尝试监听 80 和 443 端口。但是,nginx 返回 503 错误。所以我想知道是否有人可以阐明应该如何配置它。
【问题讨论】:
-
它在 8080 端口上工作吗?我在您的
docker-compose.yml文件中看不到任何内容,将 80 或 443 映射到端口 8080,这是您的节点应用程序正在侦听的端口 -
另外,您是否使用节点服务?您的应用程序在哪个端口上侦听?您需要将 443/80 映射到该端口
-
我现在像 app.listen(80) 一样在端口 80 上服务,当我让它与端口 8080 一起工作时,我将端口行添加到 docker-compose 文件中。我实际上正在考虑通过普通 docker 尝试它,就像它在 docker 容器的 GitHub 上一样。
标签: node.js docker nginx docker-compose nginx-reverse-proxy