Я запускаю nginx обратный прокси в docker -compose. Первый docker составной файл выглядит следующим образом:
version: "3.5"
services:
rproxy:
build:
context: ./nginx
dockerfile: Dockerfile
ports:
- 80:80
- 443:443
volumes:
- '/etc/letsencrypt:/etc/letsencrypt'
networks:
- main
networks:
main:
name: main_network
Dockerfile просто гарантирует, что сервер nginx имеет следующую конфигурацию:
server {
listen 443 ssl;
server_name website.dev;
ssl_certificate /etc/letsencrypt/live/www.website.dev/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.website.dev/privkey.pem;
location / {
resolver 127.0.0.11;
set $frontend http://website;
proxy_pass $frontend;
}
}
Сначала я запускаю следующее docker -составить файл. Затем, когда я пытаюсь получить доступ к www.website.dev, я получаю 502 ошибку , как и ожидалось .
Затем я запускаю этот другой docker -компонентный файл, определенный ниже:
version: '3.5'
services:
website:
image: registry.website.dev/frontendcontainer:latest
command: npm run deploy
networks:
main:
aliases:
- website
networks:
main:
external:
name: main_network
Это должно запустить контейнер веб-сайта в той же сети, что и контейнер nginx. «docker ps» показывает, что контейнер docker работает. переход на сайт website.dev выдает ошибку 502. Это неожиданно. Я ожидаю, что Nginx теперь сможет подключиться к работающему в настоящее время контейнеру docker.
Я сбросил сервер nginx, выполнив следующее на первом docker -компонентный файл:
docker-compose up -d
При переходе на website.dev теперь отображается содержимое контейнера веб-сайта.
Вносить изменения в контейнер веб-сайта и загружать новый контейнер docker в личный контейнер. Я использую следующие команды для второго файла docker -compose:
docker-compose down
Старый контейнер веб-сайта больше не существует.
docker-compose pull
Новый контейнер веб-сайта извлечен.
docker-compose up
Новый контейнер веб-сайта теперь в сети.
При переходе на website.dev теперь отображается содержимое старого (подтвержденного как несуществующего) контейнера вместо нового контейнера. Это неожиданно
Сброс сервера nginx приведет к тому, что он теперь доставит правильный веб-сайт.
Мой вопрос: как мне настроить nginx на доставить все, что он найдет по настроенному URL, без необходимости сбрасывать сервер nginx?
dockerfile по запросу:
FROM nginx:alpine
RUN rm /etc/nginx/conf.d/*
COPY proxy.conf /etc/nginx/conf.d