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

Прежде, чем расширять парк серверов, всегда стоит подумать над оптимизацией программного обеспечения, работающего на нем. Обычно, это дает гораздо больший эффект, чем установка большого количества дополнительных, мощных и дорогих аппаратных средств. 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 для роботи багато-сайтовості в WordPress

По замовчуванню, WordPress працює в одно-сайтовому режимі. Якщо Ви бажаєте включити багато-сайтовість, то зробіть наступні дії: 1. Відкрийте файл wp-config.php. В нього додайте програмний код:

2. Налаштуйте мережу. Для цього, зайдіть в Administration > Tools > Network Setup (Инструменты – Установка сети). 3. WordPress вам повідомить скрипт, призначений для роботи в Apache2. Скрипт для додавання в wp-config.php (він підходить як для нашого випадку, так і для Apache2).

Скрипт для Apache2, який потрібно додати в файл .htaccess в корні сайту (не підходить для варіанта Nginx, бо від не виконує ці файли :))

Для зв’язки Nginx – PHP-FPM необхідно вставляти інший скрипт в налаштування домену Nginx. Цей скрипт різний в залежності від вибраної Вами схеми багато-сайтовості WordPress. Скрипт для Nginx для багато-сайтового WordPress, що використовує підкаталоги:

Скрипт для Nginx, що використовує багато-доменність для WordPress:

Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Read more
1 2