Дублирование HTTP запросов для тестирования сервера |
[исправить] |
Иногда требуется симулировать нагрузку на тестовый web-сервер на основе
запросов поступающих к основному серверу,
т.е. произвести параллельную отправку запросов на другой сервер
или просто повторить какой-то набор запросов на основе данных из лог-файла за
определенный период времени.
Для сбора информации будем использовать утилиту tcpflow (http://www.circlemud.org/~jelson/software/tcpflow/),
которая имеется в портах FreeBSD (net/tcpflow) и в составе большинства Linux дистрибутивов.
Дублирование POST запросов:
sudo tcpflow -cp -i eth0 dst port 80 | grep param | while read line; \
do curl -s -- "http://duplicate.host/ask?"$line; done
Дублирование GET запросов с Cookie:
sudo tcpflow -cpi eth1 dst port 80 | while read line; do
if I=`echo $line | grep "GET /url/"`; then
REQ=`echo $line | cut -b 50- | sed s@HTTP/1.1@@`;
fi;
if J=`echo $line | grep "Cookie: "`; then
COOKIE=$line;
curl -s -H "$COOKIE" -- http://server:port$REQ;
fi;
done
|
|
|
|
Раздел: Корень / Администратору / Сетевые сервисы / WWW, Apache httpd / Редирект, mod_rewrite |