Оптимизация веб-сервера

Прежде, чем расширять парк серверов, всегда стоит подумать над оптимизацией программного обеспечения, работающего на нем. Обычно, это дает гораздо больший эффект, чем установка большого количества дополнительных, мощных и дорогих аппаратных средств. 1. Оптимизация CMS-системы. Как было показано опытами, которые я проводил несколько лет назад, наибольшая скорость загрузки и пропускная система – у статических файлов. Скорость cms-систем и статических файлов отличается в 1000-10 000 раз. Причем, это еще сильней сказывается при применении системы веб-сервера NGinx. Зная это, я переработал систему кеширования в нашей cms-системе Корпорация 2 таким образом, чтоб генерировался статический сайт из динамического содержимого. Это дало значительный прирост скорости и значительное уменьшение нагрузки на сервере. 2. Оптимизация работы веб-сервера. Связка Apache-Nginx. Мы давно практикуем систему 2-х уровневого веб-сервера. Эта система дает устойчивость к большому количеству посещений, и как результат – скорость работы веб-сервера. 3. Оптимизация работы базы данных. Связка PostgreSQL-PGBouncer. Связка о которой многие забывают, но которая просто необходима при большом количестве работающих пользователей в online. Эта связка прекрасно себя проявила и сейчас реально у нас реально выдерживается более 500 пользователей в online. Причем, есть возможность выдерживать еще гораздо большие нагрузки! 4. Оптимизация работы с файлами Nginx. Если не правильно настроить Nginx, то он будет загружать не нужной работой Apache. Поэтому, мы настроили Nginx так, чтоб он как можно реже переводил управление на Apache. В идеале – работая вообще без Apache! 5. Системы кеширования PHP. Остановились на xCache. Значительное время веб-сервера тратится на компиляцию PHP-кода. Поэтому, я решил установить систему кеширования PHP-кода. Рассматривая ряд вариантов остановился на xCache. Но, ниже […]

Read more

2-й экземпляр apache

Автор: Рудюк С . А. https://corp2.net E-Mail: rs@corp2.net Иногда, возникает необходимость запустить 2-ю копию apache. Понятное дело, хочется использовать один и тот же исполняемый файл apache и не заниматься установкой различных версий продукта. Определимся, чем должны, отличаться наши экземпляры. Это конфигурационными файлами: /etc/apache2/apache2.conf  – указаны порты и специфичные для каждого из Апачей виртуальные хосты /etc/apache2/ports.conf – содержит прослушиваемые порты. /etc/apache2/envvars – путь к файлу для сохранения pid запущенного демона. Стоит разделить логи директивами в в apache2.conf: ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined Идем в папку init скриптов: cd /etc/init.d Создаем копию init скрипта родного Apache: cp apache2 apache2_srv Где apache2_srv – это название нового экземпляра Apache. Сразу Добавляем фейловер Апача в автозапуск: update-rc.d apache2_srv defaults Корректируем скрипт apache2_srv: Вместо блока: PIDFILE=. /etc/apache2/envvars ; echo $APACHE_PID_FILE if [ -z “$PIDFILE” ] ; then echo ERROR: APACHE_PID_FILE needs to be defined in /etc/apache2/envvars >&2 exit 2 fi Вставляем: PIDFILE=. /etc/apache2/envvars_apache2_srv ; echo $APACHE_PID_FILE if [ -z “$PIDFILE” ] ; then echo ERROR: APACHE_PID_FILE needs to be defined in /etc/apache2/envvars_apache2_srv >&2 exit 2 fi Чуть выше корректируем ENV: ENV=”env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin APACHE_ENVVARS=/etc/apache2/envvars_apache2_srv” Корректируем конфиги: cp /etc/apache2/envvars /etc/apache2/envvars_apache2_srv Заменяем export APACHE_PID_FILE=/var/run/apache2.pid на export APACHE_PID_FILE=/var/run/apache2_apache_2.pid Создаем файл портов /etc/apache2/ports_apache_srv.conf: В нем пишем: Listen 81 Создаем файлы логов: touch /var/log/apache2/error_apache2_srv.log touch /var/log/apache2/other_vhosts_access_apache2_srv.log chown root:root /var/log/apache2/other_vhosts_access_apache2_srv.log chown root:adm /var/log/apache2/error_apache2_srv.log chmod 640 /var/log/apache2/error_apache2_srv.log Теперь давайте посмотрим, как осуществляется управление демоном Апача. Сразу скажу, что кэш мы не используем и следовательно “check_htcacheclean” всегда будет выдавать ложь. Запуск: start) log_daemon_msg “Starting web server” “apache2” if $APACHE2CTL start; then if check_htcacheclean ; then log_progress_msg […]

Read more

Веб-сервер Nginx и PHP-FPM (настройка мобильного хостинга) – пополняется

Т.к. система должна быть максимально мобильной, поднимаю веб-сервер на базе виртуальной машины. Все программное обеспечение использую с открытым исходным кодом, бесплатное. Для виртуальной машины вырал virtualbox: https://www.virtualbox.org/wiki/Downloads Операционную систему использую Linux Ubuntu: http://www.ubuntu.com/ После того, как установил Linux Ubuntu в вируальной машине VirtualBox, устанавливаю веб-сервер nginx и PHP-FPM:

Редактируем файл:

Редактируем файл:

Перезагружаем:

Для удобства, ставлю некоторые из утилит:

Устанавливаю DNS-сервер для настройки ns-сервера и доменных зон:

mc – это удобный файловый менеджер. htop – удобное средство для просмотра загрузки процессоров.

whois – сервис для получения информации о доменах. Еще некоторые команды, которые могут понадобиться при настройке доменов. dig название домена – определение информации о настройках домена . nslookup название домена – просмотр ns-серверов домена. Устанавливаем Apache2 Для сайтов, которым нужен rewrite устанавливаем Apache2: apt-get install apache2

apt-get install libapache2-mod-php5 apt-get install php5-curl Ставим RPaf

Устанавливаем MySQL

Устанавливаем Memcahed

Настройка рабочего места веб-разрабочика Для работы с веб-сервером, удобно поставить такое программное-обеспечение: putty – клиент терминала. filezilla – файловый менеджер, передающий файлы по ssh. Данное программное обеспечение – с открытым исходным кодом, бесплатное и кросс-платформенное. Прекрасно зарекомендовало себя при работе с веб-сервером. Настройка конфигов Nginx

Другие полезные утилиты на хостинге Просмотр объема трафика в терминале: apt-get install iptraf Чтоб просмотреть трафик, просто наберите в терминале:  iptraf Просмотр объема трафика в веб-виде: apt-get install darkstat После установки, изменяем конфиг /etc/darkstat/init.cfg # Turn this to yes when you have configured the options below. START_DARKSTAT=yes […]

Read more
1 2