#sockets #freebsd #jail
#сокеты #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 -> КЛИЕНТ
С сокетами: это было бы потерей безопасности..
- создайте каталоги в хост-системе
- создайте каталоги в тюрьмах
- объединить каталоги
Какое решение вы используете?Или у вас есть решения получше?
Ответ №1:
Я бы не стал разделять php-fpm, но это возможно. Накладные расходы на IP-связь в наши дни не так уж велики и не так важны, учитывая, что обработка, которую должны выполнять база данных и php-процессор, намного больше. Тем более, что здесь фактически не задействован провод. Пакеты маршрутизируются через интерфейс с помощью конструкции обратной связи и не попадают по проводам.
Преимущество разделения в том, что вы можете при необходимости переместить тюрьму на другую физическую машину, и перемещение тюрем — это легкий ветерок.
Пояснение, почему не переносить php-fpm в отдельную тюрьму, заключается в том, что изменение веб-сайта становится двухзадачным процессом для статического контента (изображений) и динамического контента (php-файлов).). Преимущество заключается в том, что брешь в программном обеспечении веб-сервера не позволяет модифицировать php-код. Вот почему вам также не следует обнулять свой php-код на веб-сервере jail, если вы планируете разделение, поскольку это лишит его преимущества.
Ответ №2:
Я действительно не знаю, лучшее ли это решение, но если вы можете использовать Unix domain sockets
, вы можете разделить монтирование между тремя тюрьмами. Пространство имен изолировано (они не могут создать сокет вне общей точки монтирования), и они должны иметь возможность обмениваться данными.
Для создания общего монтирования вы можете использовать nullfs
монтирование. В хорошем (довольно продвинутом) руководстве по тюрьмам также говорится о nullfs
монтированиях. Конечно, эту точку монтирования следует использовать только для сокетов, остальные файлы должны оставаться отдельными.
Опять же, я не знаю, могут ли эти приложения взаимодействовать через сокеты Unix, но если могут, то вы, вероятно, настроены.