URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 48961
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Дублирование HTTP запросов для тестирования сервера"

Отправлено auto_tips , 05-Фев-09 17:35 
Иногда требуется симулировать нагрузку на тестовый 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

URL: http://asd.livejournal.com/120019.html
Обсуждается: http://www.opennet.me/tips/info/1933.shtml


Содержание

Сообщения в этом обсуждении
"Дублирование HTTP запросов для тестирования сервера"
Отправлено RNZ , 05-Фев-09 17:35 
А ещё есть Port mirroring.

"Дублирование HTTP запросов для тестирования сервера"
Отправлено Аноним , 06-Фев-09 06:35 
Ну так давайте подробней об этом. А то 2 слова на английском хорошо звучат, а на практике как такое реализовать?

"Дублирование HTTP запросов для тестирования сервера"
Отправлено s_dog , 06-Фев-09 10:57 
>Ну так давайте подробней об этом. А то 2 слова на английском
>хорошо звучат, а на практике как такое реализовать?

Настраивается на свитче.


"Дублирование HTTP запросов для тестирования сервера"
Отправлено Alexander , 06-Фев-09 12:02 
>Ну так давайте подробней об этом. А то 2 слова на английском
>хорошо звучат, а на практике как такое реализовать?

Настройка коммутатора, обслуживающего веб-сервер, которая позволяет на другом порту этого коммутатора получить копию трафика на порту веб-сервера.

Если трафик небольшой, то удобно - но это только возможность получить трафик. Отдать его в веб-сервер назад таким образом не очень получится.


"Дублирование HTTP запросов для тестирования сервера"
Отправлено RNZ , 06-Фев-09 13:32 
Назад веб-серверу? Может всё-таки веб-клиенту?

Internet/LAN
|
|
коммутатор с PM=====>NAT=====>wwwtest
|
|
www
          


"Дублирование HTTP запросов для тестирования сервера"
Отправлено Аноним , 09-Фев-09 06:31 
А без коммутатора?

"Дублирование HTTP запросов для тестирования сервера"
Отправлено pavlinux , 12-Фев-09 14:31 
>А без коммутатора?

ебитаблес -j MIRROR


"Дублирование HTTP запросов для тестирования сервера"
Отправлено 001122 , 12-Фев-09 14:33 
порт мирроринг не сработает для тестирования веб сервера. ибо TCP сессия не установится: или первичная или форкнутая.

"Дублирование HTTP запросов для тестирования сервера"
Отправлено ymkin , 02-Окт-12 16:21 
nginx может такое:
http://wiki.nginx.org/HttpCoreModule#post_action