У меня возникли некоторые проблемы с конфигурацией Nginx. Начиная с nginx
SSL-завершение обратного прокси, я использую docker-compose.yml
установка с несколькими контейнерами, каждый из которых предоставляет виртуальный сервис. Эти сервисы предоставляются в виде подкаталогов под одним именем хоста:
net --443--> nginx
| | `--- ContainerA "https://example.com/serviceA/"
| `----- ContainerB "https://example.com/serviceB/"
`------- ContainerC "https://example.com/serviceC/"
Фрагменты списков процессов:
nginx:~$ ps fax
127285 ? Ss 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g daemon off;
127419 ? S 0:00 \_ nginx: worker process
127420 ? S 0:00 \_ nginx: worker process
127421 ? S 0:00 \_ nginx: worker process
ContainerA:~$ ps fax
127132 ? Ss 0:09 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
234053 ? S 8:27 \_ php-fpm: pool www
236952 ? S 8:12 \_ php-fpm: pool www
259123 ? S 6:42 \_ php-fpm: pool www
Я думал, что эффективность будет достигнута при запуске одного экземпляра nginx
и используя php-fpm
в каждом из контейнеров.
я считать что предпосылка php-fpm
таков, что контейнерам не нужны свои nginx
процессы; nginx
процессы связываются с каждым контейнером через порт 9000 (сетевая часть работает). На практике, однако, у меня возникают проблемы, поэтому мне нужно убедиться, что моя предпосылка обоснована:
Является ли это предположение основным nginx
а также php-fpm
архитектура верна? В качестве альтернативы, является правильным nginx
/ php-fpm
инфраструктура предназначена для использования php-fpm
в прямом согласии (тот же хост и файловая система) или разумно и эффективно ли мультихостинг / мультифайловая система?
(Недавно я обратился за помощью, и первый ответ был: «Вам нужно бежать nginx
в каждом контейнере ", что не имеет смысла для моего понимания php-fpm
.)
(Есть много вопросов, которые задают конкретные nginx.conf
вопросы, а не об этой заведомо высокоуровневой архитектуре.)