drford
@drford
Прокрастинирую с 1993 года

Как настроить контейнеры с php-fpm и nginx?

Здравствуйте. Как лучше настроить контейнер с Docker?
Есть несколько контейнеров с различными версиями PHP-FPM (7.0, 7.2 и 5.6) и один контейнер с Nginx.
В контейнерах с PHP-FPM есть пулы. Каждый из пулов слушает свой собственный сокет.
Для того, чтобы контейнер с Nginx мог корректно взаимодействовать с контейнером php-fpm, нужно:
1) На хосте создать директорию /run/php/PHP_VERSION/
2) В директиве listen у пулов указать
listen /run/php/PHP_VERSION/somesock.sock
3) К контейнерам примонтировать с помощью bind mount директорию /run/php/PHP_VERSION/
4) В контейнер с Nginx примонтировать папку /run/php
5)В конфиге Nginx указать
proxy_pass unix:/run/php/PHP_VERSION/somesock.sock
6)Профит
Так ли всё просто, или есть какие-то подводные камни?
  • Вопрос задан
  • 1272 просмотра
Пригласить эксперта
Ответы на вопрос 1
@ghostiam
На Go писатель, серверов пинатель.
Вам не обязательно соединяться с php через файл сокета,

можно в php прописать
listen = 9000

в nginx
fastcgi_pass php:9000;

менять версии php очень легко, просто при линковке сделать разные имена и прописать в nginx:
например, для php7.0
fastcgi_pass php70:9000;
для php7.2
fastcgi_pass php72:9000;
и т.д.

Для безопасности, контейнерам с php не назначать порт наружу, а просто линковать их с nginx, или в ручную, или через docker-compose (сам пользуюсь последним)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы