Skip to content

25 Февраль 2012

218

Fiddler reverse proxy или отладка наоборот

Fiddler reverse proxy

Fiddler — отличный HTTP дебагер. Я бы назвал его лучшим, но достойных альтернатив не видел. Он отлично подходит как для отладки сайтов, так и десктопных приложений, работающих с http траффиком. Обычно им пользуются «напрямую», т.е. перехватывая и анализируя свой трафик на пути к какому-либо веб-серверу. А если перехватывать трафик приходящий на сервер? Как это поможет и как это сделать :idea: Настраиваем Fiddler как reverse proxy!

:!: Область применения:

  1. Отладка своего сайта
    Представим, что вы запустили на свой сайт тестеров. Их много, а вас мало. И не дай бог они находят ошибки, которые вы не можете воспроизвести.
  2. Отладка своего сайта + приложения, которое по каким-либо причинам нельзя перенаправить на Fiddler Proxy
    Возможно поддержки проксей просто нет в вашем приложении. А может быть оно вообще не ваше, а проксировать его не предусмотрено разработчиком. Запустив отладку со стороны сервера.
Что делать в таких ситуациях?! Запускать отладку со стороны сервера! Через Fiddler вы сможете увидеть трафик любого из посетителей. При этом им для этого не нужно делать ничего.

:!: Ограничения:

  1. Отлаживаемый сайт должен находится на Windows-хостинге, либо на локальной машине, т.к. на этот же сервер будет ставится Fiddler.
  2. При невыполнении предыдущего пункта, Fiddler можно запустить на другой машине и настроить по аналогии. Но такой вариант будет менее стабилен.

:!: Общая схема работы:

Итак, нам нужно настроить Fiddler как reverse proxy. Приходящий на фидлер трафик должен просто перенаправляться в нужно нам место.

Таким образом, если клиент заходит на сайт через порт 1818 — попадает на сайт через фидлер. При этом и вход без фидлера доступен. Если нужно запретить обычный вход и перенаправлять через фиддлер абсолютно всех клиентов — можно веб-сервер переместить на другой порт, а фиддлер поставить на 80.

:!: Настройка:

  1. Устанавливаем Fiddler
  2. Tools -> Fiddler Options -> Connections
  3. Меняем порт 8888 на любой удобный. Сделать это нужно обязательно, т.к. ваш Fiddler будет торчать в интернет и его тут же найдут боты и будут использовать ваш сервер как бесплатный прокси.
  4. Rules -> Customize Rules
  5. Ищем строчки:
    static function OnBeforeRequest(oSession: Session)
    	{
    		// Sample Rule: Color ASPX requests in RED
    //		if (oSession.uriContains(".aspx")) {	oSession["ui-color"] = "red";	}
  6. Меняем на:
    static function OnBeforeRequest(oSession: Session)
    	{
    		if (oSession.host.toLowerCase() == "site.ru:1818") 
    			oSession.host = "site.rut:80";
    
    		// Sample Rule: Color ASPX requests in RED
    //		if (oSession.uriContains(".aspx")) {	oSession["ui-color"] = "red";	}

 

Вот и все! С сегодняшнего дня отдалка ваших приложений будет занимать еще чуть меньше времени  :wink:

Обсуждение закрыто.