FreeBSD джейлы и сокеты - PullRequest
3 голосов
/ 10 мая 2011

Я совершенно новичок в переходе на 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 ]

3 голосов
/ 10 мая 2011

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

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

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

1 голос
/ 10 мая 2011

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

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

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

...