Как создать свой хостинг "с нуля" - Настройка параметров системы

ОГЛАВЛЕНИЕ


Настройка параметров системы

Настройка параметров системы преследует две цели. Первая цель: повысить уровень безопасности путем изоляции пользователей друг от друга и от системы и вторая - достичь оптимальной производительности хостинга.

Для изоляции клиентов хостинга на уровне файловой системы мы воспользовались системой unix permissions. Теперь необходимо изолировать клиентов на уровне доступа к списку процессов, используемых ресурсов и т.п. Для этого в файл /etc/sysctl.conf вносим строчку

security.bsd.see_other_uids=0 

и перечитываем конфигурацию /etc/rc.d/sysctl restart.

Для того чтобы при падении программ система писала core-файлы в один каталог, а не во всю файловую систему, также добавляем строчки

kern.sugid_coredump=0 
kern.corefile=/var/tmp/%N.core

Для оптимизации работы системы пропишем следующие параметры:

kern.ipc.maxsockbuf=16777216
net.inet.tcp.rfc1323=1
net.inet.tcp.sendspace=1048576
net.inet.tcp.recvspace=1048576
net.inet.tcp.sack.enable=1

kern.maxfiles=204800
kern.maxfilesperproc=200000

net.inet.ip.portrange.first=1024
net.inet.ip.portrange.last=65535

net.inet.ip.portrange.randomized=0

net.inet.tcp.nolocaltimewait=1

kern.ipc.shmmax=268435456

Детальное их описание довольно сложно и выходит за рамки данного руководства; интересующимся следует обратиться к текстам докладов Первой конференции российскийх вебразрботчиков.

Выводы

Разумеется, это - всего лишь прототип реального хостинга и при количестве клиентов до нескольких сотен будет работать в предлагаемой конфигурации. Для развертывания системы в эксплуатацию с несколькими тысячами пользователей необходимо, как минимум, разнести вебсервер и сервер БД, а для биллинга выделить отдельную машину. Также следует рассмотреть вопросы организации резервных копий (backup), систему миграции пользователей между серверами хостнговой площадки, а также - систему миниторинга пользовательской активности. Возможно, об этом - в следующих статьях.