1.Общее описание, структурная схема и жизненный цикл тестирования Yandex.Tank 2.Базовая пред подготовка сервера с Yandex.Tank 3.Установка Yandex.Tank 4.Создание профиля тестирования/сценария нагрузки для Yandex.Tank 1.Общее описание, структурная схема и жизненный цикл тестирования Yandex.Tank Яндекс.Танк — инструмент для проведения нагрузочного тестирования, разрабатываемый в компании Яндекс и распространяемый под лицензией LGPL. В основе инструмента лежит высокопроизводительный асинхронный […]
Архивы рубрики ‘Web’
Настройка Let’s Encrypt SSL-сертификата на Ubuntu/Centos
1.Установка Let’s Encrypt При использовании Nginx в качестве Web-сервера Установка git Ubuntu/Debian
1 |
# apt-get install git |
Centos
1 |
# yum install git |
1 |
# cd /usr/local/ |
1 |
# git clone https://github.com/letsencrypt/letsencrypt |
1 |
# cd /usr/local/letsencrypt/ |
Остановка Nginx, который прослушивает 80 порт. Перед генерацией сертификатов необходимо убедиться, что все имена домена(включая www-поддомен ,если он должен быть включен в сертификат), для которых генерируются сертификаты имеют запись типа А в ДНС. Также необходимо остановить […]
Ускорение WordPress за счет кеширования в memcached с помощью плагина W3 Total Cache
Установка memcached ранее рассматривалась Установка memcached в Ubuntu Установка memcached в Centos 1.Установка плагина w3 total cache через менеджер плагинов 2.Проверка/добавление наличие строки подключения плагина в файле wp-config.php
1 |
# cat -n /path_to_site/wp-config.php | less |
1 2 3 4 5 |
1 <?php 2 /** Enable W3 Total Cache */ 3 define('WP_CACHE', true); // Added by W3 Total Cache 4 5 /** |
3.Настройка Nginx виртуального хоста(включаем сжатие и определяем типы файлов для сжатия ) в http-секции
1 |
# nano /etc/nginx/conf.d/virtualhostname.conf |
1 2 3 4 |
server { .......... include /path_to_site/nginx.conf; } |
Проверка наличия файла nginx.conf в […]
Тестирование производительности Web-сервера с помощью Siege
Siege
1 |
siege [options] [url] |
Формат url
1 |
[протокол://] [сервер.домен.xxx] [: порт] [/директория/файл] |
Используемые опции:
1 |
-b |
— не будет делать паузу между запросами(режим тестирования производительности)
1 |
-c |
— количество параллельных запросов, отправляемых за один раз
1 |
-r |
— количество повторов запроса
1 |
-v |
— показывает текущие запросы и ответы в консоли
1 |
-t |
— время теста, можно использовать h,m,s
1 |
-f |
— список URL-ов из файла
1 |
-i |
[…]
Тестирование производительности Web-сервера с помощью ApacheBench
1 |
# yum install httpd-tools |
ApacheBench Usage:
1 |
ab [options] [http[s]://]hostname[:port]/path |
Некоторые параметры утилиты AB
1 |
-A |
auth-username:password — передать данные для базовой аутентификации. То есть, фактически можно тестировать даже если доступ закрыт с помощью базовой аутентификации (htpasswd).
1 |
-c |
concurrency — количество параллельных запросов в единицу времени. По умолчанию, один запрос в единицу времени (можно считать, что в секунду).
1 |
-С |
cookie-name=value […]
Обновление самоподписного SSL-сертификата на Centos
При получении почтового сообщения типа указанного ниже необходимо продлить с помощью утилиты genkey если Ваш сертификат подписан Центром Сертификации CA (Certificate Authority) При использовании самоподписного сертифіката(self-signed) утилита genkey не поможет.Необходимо заново сгенерировать самоподписной сертификат.
1 2 3 4 5 6 7 8 9 |
################# SSL Certificate Warning ################ Certificate for hostname '<servername>', in file (or by nickname): /etc/pki/tls/certs/localhost.crt The certificate needs to be renewed; this can be done using the 'genkey' program. Browsers will not be able to correctly connect to this web site using SSL until the certificate is renewed. ########################################################## Generated by certwatch(1) |
1.Проверяем название файла и место, где находятся сертификат и ключ, используемые в Apache
1 |
# grep SSLCertificate /etc/httpd/conf.d/ssl.conf | grep -v \# |
1 2 |
SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key |
2.Проверем права […]
Настройка Apache+SSL на Centos
1.Установка необходимых пакетов
1 |
# yum install openssl mod_ssl |
2. Генерирование сертификатов
1 |
# mkdir /etc/httpd/ssl |
1 |
# cd /etc/httpd/ssl |
Для вирт.хоста по умолчанию
1 |
# openssl req -new -x509 -days 3650 -nodes -out cert.perm -keyout cert.key |
Для вирт.хоста kamaok.org.ua
1 |
# openssl req -new -x509 -days 3650 -nodes -out kamaok.org.ua.perm -keyout kamaok.org.ua.key |
3. Настройка вирт.хоста по умолчанию
1 |
# nano /etc/httpd/conf.d/000default.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<VirtualHost *:443> DocumentRoot /var/www/html ServerName localhost SSLEngine on SSLCertificateFile /etc/httpd/ssl/cert.perm SSLCertificateKeyFile /etc/httpd/ssl/cert.key <Directory "/var/www/html"> Options -Indexes AllowOverride all Allow from all </Directory> ErrorLog logs/default-ssl-error.log #ErrorLog /dev/null CustomLog logs/default-ssl-access.log combined #CustomLog /dev/null combined </VirtualHost> |
4.Настройка вирт.хоста kamaok.org.ua
1 |
# nano /etc/httpd/conf.d/kamaok.org.ua.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<VirtualHost *:443> DocumentRoot /path/to/documentroot ServerName kamaok.org.ua ServerAlias *.kamaok.org.ua SSLEngine on SSLCertificateFile /etc/httpd/ssl/kamaok.org.ua.perm SSLCertificateKeyFile /etc/httpd/ssl/kamaok.org.ua.key <Directory "/path/to/documentroot"> Options -Indexes AllowOverride all Allow from all </Directory> ErrorLog logs/kamaok.org.ua-ssl-error.log #ErrorLog /dev/null CustomLog logs/kamaok.org.ua-ssl-access.log combined #CustomLog /dev/null combined </VirtualHost> |
5. Включаем вирт.хостинг для https подключений
1 |
# nano /etc/httpd/conf/httpd.conf |
1 |
NameVirtualHost *:443 |
1 |
# apachectl configtest |
1 |
Syntax OK |
6.Отключаем вирт.хост по умолчанию,который активируется при установке модуля mod_ssl
1 |
# cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf~ |
[…]
Настройка Nginx+SSL на Centos
Настройка Nginx+SSL на Centos 6/7 Имеем три виртуальных хоста и хост по умолчанию(“заглушка”) вирт.хосты joomla.us wordpress.us kamaok.us Хост по умолчанию=имя сервера(app01.kamaok.org.ua) 1.Генерирование сертификатов для всех вирт.хостов
1 |
# mkdir /etc/nginx/ssl |
1 |
# cd /etc/nginx/ssl |
1 |
# openssl req -new -x509 -days 3650 -nodes -out app01.kamaok.org.ua.pem -keyout app01.kamaok.org.ua.key |
1 |
# openssl req -new -x509 -days 3650 -nodes -out joomla.us.pem -keyout joomla.us.key |
1 |
# openssl req -new -x509 -days 3650 -nodes -out wordpress.us.pem -keyout wordpress.us.key |
1 |
# openssl req -new -x509 -days 3650 -nodes -out kamaok.us.pem -keyout kamaok.us.key |
1 |
# chown -R nginx:root /etc/nginx/ssl/ |
1 |
# chmod -R 700 /etc/nginx/ssl |
2.Настройка Nginx для поддержки SSL
1 |
# nano /etc/nginx/ssl.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
ssl_session_cache shared:SSL:20m; ssl_session_timeout 1d; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS; ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; ssl_dhparam /etc/nginx/ssl/dhparam.pem; # ssl_ecdh_curve secp521r1; ## Improves TTFB by using a smaller SSL buffer than the nginx default ssl_buffer_size 8k; ## Enables OCSP stapling ssl_stapling on; resolver 8.8.8.8; ssl_stapling_verify on; ## Send header to tell the browser to prefer https to http traffic #add_header Strict-Transport-Security max-age=31536000; |
Создаем ключ Диффи-Хельмана
1 |
# openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048 |
1 |
# nano /etc/nginx/conf.d/default.conf |
1 2 3 4 5 6 7 8 9 |
server { listen :80 default_server; listen :443 ssl default_server; server_name localhost; ssl_certificate /etc/nginx/ssl/app01.kamaok.org.ua.pem; ssl_certificate_key /etc/nginx/ssl/app01.kamaok.org.ua.key; include /etc/nginx/ssl.conf; …………… } |
[…]
Анализ Web-логов в реальном времени с помощью GoAccess
1.Установка необходимых зависимостей.
1 |
# yum install ncurses ncurses-libs ncurses-devel |
1 |
# yum install glib2 glib2-devel glib2-static |
1 |
# yum install GeoIP GeoIP-devel |
2.Скачивание и установка утилиты goaccess из исходников (через yum устанавливается устаревшая версия)
1 |
# wget http://tar.goaccess.io/goaccess-0.9.4.tar.gz |
1 |
# tar xvfz goaccess-0.9.4.tar.gz |
1 |
# cd goaccess-0.9.4 |
1 |
# ./configure --enable-geoip --enable-utf8 |
1 |
# make |
1 |
# make install |
3.Создание резервной копии и настройка конфигурационного файла goaccess.conf
1 |
# cp /usr/local/etc/goaccess.conf /usr/local/etc/goaccess.conf~ |
1 |
# nano /usr/local/etc/goaccess.conf |
1 2 3 4 5 |
time-format %H:%M:%S # Apache log date format. The following date format works with any of the Apache's log formats. date-format %d/%b/%Y # NCSA Combined Log Format log-format %h %^[%d:%^] "%r" %s %b "%R" "%u" |
4.Использование GoAccess для анализа Web-логов Просмотр статистики и анализ Web-лога в реальном […]
Nginx — настройка ограничения на кол-во подключений и количество запросов в единицу времени
В Nginx есть возможность ограничить количество соединений с одного адреса(модуль ngx_http_limit_conn_module) и ограничить количество запросов в единицу времени с одного адреса (модуль ngx_http_limit_req_module)
1 |
ngx_http_limit_conn_module |
— позволяет ограничить число соединений по заданному ключу, в частности, число соединений с одного IP-адреса.
1 |
ngx_http_limit_req_module |
– позволяет ограничить скорость обработки запросов по заданному ключу, в частности, скорость обработки запросов, поступающих […]