Я использую большинство своих приложений на одной установке nginx/php-fpm непосредственно на vps. Я решил попробовать докеры и играл с ним уже неделю. Я читал все возможное и считаю, что понимаю его концепции.архитектура для нескольких приложений nginx/php с использованием докеров
Но я не могу обмотать голову, имея так много экземпляров nginx, php и db.
Одна вещь, которую я поселился с в том, что я хочу иметь 1 дБ, так что это легко:
mariadb:
image: mariadb:latest
container_name: mariadb
ports:
- "127.0.0.1:3306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: xxxxx
volumes:
- /srv/mysql:/var/lib/mysql
Я также нашел Nginx прокси вместе с Nginx-сертификаты работать как шарм:
nginx-proxy:
image: jwilder/nginx-proxy
container_name: nginx-proxy
ports:
- "80:80"
- "443:443"
restart: always
volumes:
- /srv/certs:/etc/nginx/certs:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./vhost.d:/etc/nginx/vhost.d
- /usr/share/nginx/html
nginx-certs:
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: nginx-certs
volumes:
- /srv/certs:/etc/nginx/certs:rw
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes_from:
- nginx-proxy
Это все денди. Но как я могу обрабатывать реальные контейнеры приложений?
Я хочу, чтобы использование домкрата к минимуму, так что рекомендуется:
- 1 PHP-FPM контейнер с несколькими объемами внутри и нескольких серверов Nginx сервер
- 1 Nginx и нескольких PHP-FPM контейнеров?
- имеют 1 контейнер в проекте и сохраняют nginx/php-fpm внутри этого контейнера
- X контейнеры nginx + контейнеры X php-fpm. X количество приложений.
Любые идеи?
Что касается jwilder/nginx-proxy, насколько я вижу, он не может обращаться напрямую к контейнерам php. поэтому мне нужен другой nginx под jwilder/nginx-proxy правильно? –
Я никогда не использовал этот образ, но я знаю, что официальный nginx поддержит его. Я думаю, они оба могут работать вместе в соответствии с readme, но еще раз я этого никогда не делал. –
Если вы запустите два php-приложения, как предлагает этот ответ, скажите два разных блога WordPress, а затем используя два контейнера 'php-fpm', вы будете иметь два кэша кода операции php с довольно большим количеством дублированных данных (основные файлы Wordpress которые не меняются между приложениями) в ОЗУ (как правило, самый дорогой ресурс в мире VPS). Каков наилучший способ справиться с этим? –