Я уже писал о том, как отслеживать медленные запросы с помощью MySQL. Но не всегда причина бывает в базе данных. Поэтому имеет смысл применять и другой способ — использовать логи Web-серверов. В современных версиях Apache и NGinx есть возможность выводить в лог время выполнения запроса с точностью до миллисекунд.
В NGinx это делается так: сначала объявляем формат лога с помощью директивы log_format и придумываем ему имя, например, logtimed. Возьмём за основу формат по умолчанию, и добавим к нему время выполнения и длину запроса. А потом объявим использование этого формата в директиве access_log:
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
' $request_time $request_length';
access_log /var/log/nginx/access.log logtimed
Директива может использоваться на любом уровне (http, server, location), но в документации сказано, что следует использовать тот же, на котором прописана директива root.
В Apache требуется включить mod_log_config. Далее всё делается аналогично, только директивы называются LogFormat и CustomLog, а вывод времени запроса можно задать двумя способами — либо как %D (в микросекундах), либо как %msT (с версии 2.4.13) — в миллисекундах, либо как %T — в сеундах:
LogFormat "%h %l %u %t \"%r\" %>s %b %D" logtimed
CustomLog /var/log/apache2/access.log logtimed
Эти директивы можно использовать либо в глобальной конфигурации, либо на уровне VirtualHost.
Надеюсь, эта информация поможет выявить медленные запросы и сделать ваши сайты и сервисы быстрее.

- Перово, Москва, Россия
- me@4xpro.ru
- XXXXPro
Новости сайта в Telegram
t.me/4x_proКомпьютерное
Отслеживаем время запросов в Apache и NGinx

Автоматическая установка сертификата от Let's encrypt

Недавно получил сообщение о том, что заканчивается срок действия SSL-сертификата на моем сайте socionics.me. Посмотрев условия продления, выяснил, что цены снова подорожали, и задумался о поиске альтернатив. Первое, что стал рассматривать — это Let's Encrypt и SSL for free. Но и там, и там сертификаты выдают всего на 90 дней, что, на мой взгляд, очень мало.
Однако на сайте Let's Encrypt обнаружилась ссылка на проект под названием Certbot, который представляет собой скрипт, позволяющий автоматизировать выпуск, установку и обновление сертификатов от Let's encrypt. Я решил попробовать его в действии. Установка под Ubuntu оказалась достаточно простой — нужно добавить соответствующий репозиторий и установить сам бот: Читать, как это сделать
Настройки для повышения производительности nginx

Почти два года назад запустил один из своих проектов на связке nginx+PHP-fpm, и теперь решил поделиться некоторыми настройками, позволяющими получить выигрыш в скорости работы.
Список настроек