FreeBSD джейлы и сокеты

Я совершенно новичок в переходе на FreeBSD с Linux.

Я читал о тюрьме, решение отлично подходит для серверных систем. Поэтому моя идея для моего веб-сервера состояла в том, чтобы создать 3 тюрьмы. Одна тюрьма для mysql, одна для nginx и одна для php-fpm. Теперь тюрьмы должны общаться друг с другом. Как я могу это сделать?

По IP? Это было бы большим накладным расходом, но безопасным. Вот пример:

  • КЛИЕНТ
    • -> TCP / IP -> NGINX
    • -> TCP / IP -> PHP-FPM
    • -> TCP / IP -> MYSQL
    • -> TCP / IP -> PHP-FPM
    • -> TCP / IP -> NGINX
    • -> TCP / IP -> КЛИЕНТ

С сокетами: это было бы потеря безопасности..

  • создать каталоги в хост-системе
  • создать каталоги в тюрьмах
  • объединить каталоги

Какое решение вы используете? Или у вас есть лучшие решения?

2 ответа

Я бы не стал отделять php-fpm, но это возможно. Затраты на IP-коммуникацию в наши дни невелики и не так важны, учитывая, что обработка, которую требуется выполнить базе данных и процессору php, намного больше. Тем более, что в действительности не используется провод. Пакеты направляются через интерфейс через петлевую конструкцию и не попадают в сеть.

Преимущество разделения заключается в том, что вы можете перенести тюрьму на другую физическую машину, если это необходимо, и перемещение тюрьмы - это очень просто.

Чтобы выяснить, почему не перемещать php-fpm в отдельную тюрьму, нужно изменить, что изменение веб-сайта становится процессом из двух задач для статического контента (изображений) и динамического контента (файлов php). Преимущество заключается в том, что нарушение программного обеспечения веб-сервера не может изменить код php. По этой же причине вам не следует обнулять свой php-код в тюрьме веб-сервера, если вы планируете разделиться, поскольку это лишит его преимущества.

Я действительно не знаю, является ли это лучшим решением, но если вы можете использовать Unix domain sockets Вы можете разделить гору между тремя тюрьмами. Пространство имен изолировано (они не могут создать сокет вне общей точки монтирования), и они должны иметь возможность обмениваться данными.

Для создания общего монтирования вы можете использовать nullfs крепление. Хороший (довольно продвинутый) гид по тюрьмам также говорит о nullfs монтирует. Конечно, эту точку монтирования следует использовать только для сокетов, остальные файлы должны оставаться отдельными.

Опять же, я не знаю, могут ли эти приложения взаимодействовать через сокеты Unix, но если они могут, вы, вероятно, настроены.

Другие вопросы по тегам