The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Дублирование 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
 
05.02.2009 , Автор: asd , Источник: http://asd.livejournal.com/120019.h...
Ключи: http, curl, web
Раздел:    Корень / Администратору / Сетевые сервисы / WWW, Apache httpd / Редирект, mod_rewrite

Обсуждение [ RSS ]
  • 1.1, RNZ (ok), 17:35, 05/02/2009 [ответить]  
  • +/
    А ещё есть Port mirroring.
     
  • 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.6, Аноним (-), 06:31, 09/02/2009 [ответить]  
  • +/
    А без коммутатора?
     
     
  • 2.7, pavlinux (ok), 14:31, 12/02/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >А без коммутатора?

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

     

  • 1.8, 001122 (?), 14:33, 12/02/2009 [ответить]  
  • +/
    порт мирроринг не сработает для тестирования веб сервера. ибо TCP сессия не установится: или первичная или форкнутая.
     
  • 1.9, ymkin (??), 16:21, 02/10/2012 [ответить]  
  • +/
    nginx может такое:
    http://wiki.nginx.org/HttpCoreModule#post_action
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру