Дублирование 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 |
1.2, Аноним (-), 06:35, 06/02/2009 [ответить]
| +/– |
Ну так давайте подробней об этом. А то 2 слова на английском хорошо звучат, а на практике как такое реализовать?
| |
|
2.3, s_dog (??), 10:57, 06/02/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Ну так давайте подробней об этом. А то 2 слова на английском
>хорошо звучат, а на практике как такое реализовать?
Настраивается на свитче.
| |
2.4, Alexander (??), 12:02, 06/02/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Ну так давайте подробней об этом. А то 2 слова на английском
>хорошо звучат, а на практике как такое реализовать?
Настройка коммутатора, обслуживающего веб-сервер, которая позволяет на другом порту этого коммутатора получить копию трафика на порту веб-сервера.
Если трафик небольшой, то удобно - но это только возможность получить трафик. Отдать его в веб-сервер назад таким образом не очень получится.
| |
|
3.5, RNZ (ok), 13:32, 06/02/2009 [^] [^^] [^^^] [ответить]
| +/– |
Назад веб-серверу? Может всё-таки веб-клиенту?
Internet/LAN
|
|
коммутатор с PM=====>NAT=====>wwwtest
|
|
www
| |
|
|
1.8, 001122 (?), 14:33, 12/02/2009 [ответить]
| +/– |
порт мирроринг не сработает для тестирования веб сервера. ибо TCP сессия не установится: или первичная или форкнутая.
| |
|