Попытка заставить прокси nginx работать на порте 80 и 443 для node.js с докером - PullRequest
0 голосов
/ 19 мая 2018

Поэтому я пытаюсь следовать примеру здесь , чтобы создать прокси-контейнер nginx, который будет обрабатывать все остальные контейнеры.Я попытался следовать формату, который настраивает переменные среды, чтобы сайты работали через прокси-сервер nginx.До сих пор я получил только развернутый сайт, если я использую порт, отличный от моего 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.Поэтому мне было интересно, сможет ли кто-нибудь пролить свет на то, как это должно быть настроено.

1 Ответ

0 голосов
/ 21 мая 2018

Итак, я получил возможность развернуть два отдельных контейнера, один как domain.com, а другой - как subdomain.domain.com, при этом оба прослушивают порт 80. По умолчанию сайт использует https, как и ожидалось, поскольку nginx это обрабатывает.Вместо того чтобы использовать файл docker-compose.yml, я переделал nginx-прокси, следуя инструкциям github page , а не в блоге, используя обычный 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

Их можно найти в их вики здесь. Я думаю, что пока буду избегать docker-compose, по крайней мере, пока не узнаю больше оСам докер, но если кто-нибудь сможет пролить свет на то, почему не работает установка docker-compose, это будет оценено.

...