Кому нужна медленная социальная сеть? Оптимизируем свой сайт – FreeBSD и Apache

Вот и пришло время рассказать о том, как можно сделать комфортную социальную сеть за “5 минут” (как же хвалит себя разработчик ).

Речь пойдет о Unix, WordPress MU и – на их основе можно достаточно быстро создать социальную сеть. Про установку этих компонентов можно почитать на просторах сети:

Советов по оптимизации WordPress MU в сети великое множество и пытаться изобрести велосипед совершенно не хочется, а вот как настроить Unix (вернее , и ) – тут можно дать несколько практических советов, что, собственно, и хотелось бы сделать.

Весь по оптимизации разбит на 3 части: Apache, PHP, MySQL. Но начнем с Почему? Именно на данной системе проводилась .

divider

Начните оптимизацию с операционной системы Вашего сервера! Что тут можно дать в качестве советов?

Исходные данные: FreeBSD 7, 1Gb RAM, SATA массив…

1) Закройте от внешнего мира все порты кроме нужных.

2) Используйте SSH для работы с сервером (шифрование канала, отсутствие возможности под root-ом войти в систему.. как минимум сразу).

3) Не ставьте лишнее ПО (в том числе ftp-сервера).

4) Используйте следующие настройки:

sysctl.conf  (справедливо для FreeBSD)

* net.inet.tcp_log_in_vain=1
* net.inet.udp.log_in_vain=1
* net.inet.tcp.blackhole=2
* net.inet.tcp.blackhole=1
* net.link.ether.inet.max_age=900
* net.inet.icmp.markperl=0
* net.inet.ip.sourceroute=0
* net.inet.icmp.bmcastecho=0
* net.inet.tcp.syncookies=1
* net.inet.op.ttl=52

5) Поставьте из портов защиту от подбора пользователя и пароля (ой какая нагрузка идет на …), к примеру sshguard.

На самом деле, найти советы по настойке сервера – легко, их много и есть статьи, по которым можно определить полезность той или иной настройке – гуглите! Но помните – на продуктиве никаких эксперементов! (есть горький опыт, о котором скоро будет написано…)

Вот , которые могут вам понадобится при настройке вашей системы на FreeBSD:

divider

Самое вкусное – это настройка Apache, PHP и MySQL – ведь наша цель сделать быструю социальную сеть!

Apache

Cамое важное – это наш веб-сервер и без него все остальное не имеет смысла, а еще это самое атакуемое место на нашем сервере со стороны хакеров и прочих “кому делать нечего”. Первое, что надо сделать, – так это отключить все лишние модули (mod)! Какие – это, опять же, гуглить.

Затем настроить  – и тут уже есть опыт! Задайте параметры для своего веб-сервера в файле httpd.conf:

  • ServerLimit и MaxClients, моя рекомендация 32, но тут уже надо смотреть на возможности Вашего сервера и готовность отказать тем клиентам, для которых уже нет лишних ресурсов. Если сервер нормально работает с данным значением, то поднимайте его.
  • KeepAlive – поставить On, так как каждое подключение к серверу – это создание процесса и на это требуется время.. То просто необходимо не закрывать сразу это соединение, а вдруг пользователь не ограничится стартовой страницей Вашей социальной сети.
  • KeepAliveTimeout – поставить 4, цифра опытного пути, погуглив – поймите свое значение этого параметра.
  • MaxKeepAliveRequests – поставить 16, параметр на тему – максимальное количество “висящих” соединений.
  • MaxRequestsPerChild – поставить 96, это количество последовательных запросов на одно открытое соединение, делать его безлимитным – это получить бесконечно большой процесс.. а это может сказаться на расходе памяти Вашего сервера и в уходе в Swap (своп-память вообще не должна использоваться – это только на самый критический случай).
  • MinSpareServers – поставить 4, это минимальное количество открытых для соединений экземпляров Вашего веб-сервера.
  • MaxSpareServers – поставить 8, это максимальное количество открытых для соединений экземпляров Вашего веб-сервера,  но по наблюдениям – параметр, скорее всего, перебивается MaxKeepAliveRequest …
  • StartServers – поставить 4, это стартовое количество открытых для соединений экземпляров Вашего веб-сервера. Если обращений к серверу очень много – увеличивайте это значение, создание нового экземпляра – это время (чем больше – тем хуже, чем меньше – тем неудобнее пользователям)…
  • TraceEnable – поставьте Off, параметр относится к безопасности Вашего веб-сервера.
  • HostNameLookups – поставьте Off, тогда в процессе логирования не будет идти процесс попытки определить имя по IP.. Это улучшит .

В конфигурации Вашего сайта – обязательно настройте логирование! Логи позволяют анализировать работу Вашего веб-сервера.

  • ErrorLog “…/../server-error.log”
  • CustomLog “…/../server-access.log”

Незабыв установить правила в newsyslogs (ротация логов).

Кстати, после внесения изменений – перезапустите Ваш веб-сервер:

httpd -k stop, httpd -k start

divider

В следующей части вы прочитаете о некоторых советах по настройке PHP.

Данный пост является гостевым, весь материал принадлежит Александру
(вот его социальная сеть SportActions.ru и личный сайт Milordk.ru).


Пожалуйста, подождите. Комментарии загружаются.
Открыть Нечто !