尝试让 nginx 代理在 node.js 和 docker 的端口 80 和 443 上工作
Trying to get nginx proxy to work on port 80 and 443 for node.js with docker
所以我尝试按照示例 here 做一个 nginx 代理容器来处理所有其他容器。我尝试遵循配置环境变量的格式,以便站点通过 nginx-proxy 工作。到目前为止,如果我使用 80 或 443 以外的端口,我只部署了一个站点。我想知道我可以得到任何帮助,我在下面粘贴了我的两个文件。
Docker 文件
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 returns 出现 503 错误。所以我想知道是否有人可以阐明应该如何配置它。
所以我部署了两个单独的容器,一个作为 domain.com,另一个作为子域。domain.com 都在端口 80 上侦听。该站点甚至像预期的那样默认为 https,因为 nginx 处理那。我没有使用 docker-compose.yml 文件,而是按照 github page 的说明重做了 nginx-proxy,而不是使用正常 docker 的博客。之后我使用他们的格式部署如下:
docker run --detach \
--name your-proxyed-app
--env "VIRTUAL_HOST=subdomain.yourdomain.tld" \
--env "LETSENCRYPT_HOST=subdomain.yourdomain.tld" \
--env "LETSENCRYPT_EMAIL=mail@yourdomain.tld" \
nginx
这些是在他们的 wiki here. 上找到的 我想我会暂时避免 docker-compose 至少在我了解更多关于 docker 本身之前,但是如果有人可以阐明一些至于为什么 docker-compose 设置不起作用,我们将不胜感激。
所以我尝试按照示例 here 做一个 nginx 代理容器来处理所有其他容器。我尝试遵循配置环境变量的格式,以便站点通过 nginx-proxy 工作。到目前为止,如果我使用 80 或 443 以外的端口,我只部署了一个站点。我想知道我可以得到任何帮助,我在下面粘贴了我的两个文件。
Docker 文件
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 returns 出现 503 错误。所以我想知道是否有人可以阐明应该如何配置它。
所以我部署了两个单独的容器,一个作为 domain.com,另一个作为子域。domain.com 都在端口 80 上侦听。该站点甚至像预期的那样默认为 https,因为 nginx 处理那。我没有使用 docker-compose.yml 文件,而是按照 github page 的说明重做了 nginx-proxy,而不是使用正常 docker 的博客。之后我使用他们的格式部署如下:
docker run --detach \
--name your-proxyed-app
--env "VIRTUAL_HOST=subdomain.yourdomain.tld" \
--env "LETSENCRYPT_HOST=subdomain.yourdomain.tld" \
--env "LETSENCRYPT_EMAIL=mail@yourdomain.tld" \
nginx
这些是在他们的 wiki here. 上找到的 我想我会暂时避免 docker-compose 至少在我了解更多关于 docker 本身之前,但是如果有人可以阐明一些至于为什么 docker-compose 设置不起作用,我们将不胜感激。