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 / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевые сервисы / WWW, Apache httpd / Редирект, mod_rewrite

Обсуждение [ RSS ]
 
  • 1.1, RNZ, 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, 13:32, 06/02/2009 [^] [ответить] [смотреть все]  
  • +/
    Назад веб-серверу? Может всё-таки веб-клиенту?

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

     
  • 1.6, Аноним, 06:31, 09/02/2009 [ответить] [смотреть все]  
  • +/
    А без коммутатора?
     
     
  • 2.7, pavlinux, 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:      
    Заголовок:
    Текст:



      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor