Tengo algunos problemas conceptuales con una configuración de Nginx. Comenzando con un nginx
proxy inverso de terminador SSL, utilizo una docker-compose.yml
configuración con algunos contenedores, cada uno de los cuales proporciona un servicio virtual. Estos servicios se proporcionan como subdirecciones bajo un único nombre de host:
net --443--> nginx
| | `--- ContainerA "https://example.com/serviceA/"
| `----- ContainerB "https://example.com/serviceB/"
`------- ContainerC "https://example.com/serviceC/"
Fragmentos de listas de procesos:
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
Pensé que se ganaría eficiencia al ejecutar una única instancia de nginx
y usarla php-fpm
en cada uno de los contenedores.
Yo creo que la premisa de php-fpm
es tal que los recipientes no necesitan sus propios nginx
procesos; los nginx
procesos se comunican con cada contenedor a través del puerto 9000 (la parte de la red funciona). Sin embargo, en la práctica, tengo problemas, por lo que debo verificar que mi premisa sea sólida:
¿Es esta suposición básica de un nginx
y php-fpm
arquitectura correcta? Alternativamente, ¿una infraestructura adecuada nginx
/ está php-fpm
destinada a usarse php-fpm
en concierto directo (mismo host y sistema de archivos) o es multi-hosting / multi-filesystem razonable y eficiente?
(Recientemente me contacté para contratar ayuda, y su primera respuesta fue "necesitas correr nginx
en cada contenedor", lo que no tenía sentido para mí php-fpm
).
(Aquí hay muchas preguntas que hacen nginx.conf
preguntas específicas , no sobre esta arquitectura de nivel superior).