<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>по стопам webkill&#039;а &#187; тдс</title>
	<atom:link href="http://blog.lukmus.ru/tag/%d1%82%d0%b4%d1%81/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.lukmus.ru</link>
	<description>это наш химический дом для печальных жителей Земли</description>
	<lastBuildDate>Sat, 21 Oct 2023 19:10:13 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>lukmuTDs 1.11. Распределенная TDS. Минимум нагрузки на WEB-сервер и БД.</title>
		<link>http://blog.lukmus.ru/2010/10/27/lukmutds-1-1-raspredelennaya-tds-minimum-nagruzki/</link>
		<comments>http://blog.lukmus.ru/2010/10/27/lukmutds-1-1-raspredelennaya-tds-minimum-nagruzki/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 02:13:36 +0000</pubDate>
		<dc:creator>lukmus</dc:creator>
				<category><![CDATA[lukmuTDS]]></category>
		<category><![CDATA[проекты]]></category>
		<category><![CDATA[free TDS]]></category>
		<category><![CDATA[LukmuTDs]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[TDS]]></category>
		<category><![CDATA[минимальная нагрузка]]></category>
		<category><![CDATA[распределенная tds]]></category>
		<category><![CDATA[тдс]]></category>

		<guid isPermaLink="false">http://blog.lukmus.ru/?p=547</guid>
		<description><![CDATA[Многим, наверно, немного надоела надпись, как ниже, при входе на аккаунт хостинга, где установлена и работает TDS. Решить эту проблему призвана распределенная TDS &#8211; lukmuTDs v1.1x. Надеюсь так оно и есть. распределенность Эта TDS распределенная т.к., как вы уже догадались, может располагатся на нескольких независимых друг от друга серверах, а точнее на 2-х. Все дело [...]]]></description>
			<content:encoded><![CDATA[<p>Многим, наверно, немного надоела надпись, как ниже, при входе на аккаунт хостинга, где установлена и работает TDS.<br />
<a href="http://blog.lukmus.ru/wp-content/uploads/2010/10/serv.png"><img class="aligncenter size-full wp-image-548" style="margin-top: 3px; margin-bottom: 3px;" title="lukmutds" src="http://blog.lukmus.ru/wp-content/uploads/2010/10/serv.png" alt="ваш аккаунт заблокирован" width="515" height="74" /></a>Решить эту проблему призвана распределенная TDS &#8211; lukmuTDs v1.1x. Надеюсь так оно и есть.<span id="more-547"></span></p>
<h2>распределенность</h2>
<p>Эта TDS распределенная т.к., как вы уже догадались, может располагатся на нескольких независимых друг от друга серверах, а точнее на 2-х. Все дело в том, что она состоит из 2-х частей:</p>
<ol>
<li>модуль определения региона и ведения логов</li>
<li>модуль управления (главный) или сам интерфейс TDS</li>
</ol>
<p>Помимо этого существует еще 3-я функциональная часть, которая располагается у клиента т.е. у нашего трафа.</p>
<h2>минимальная нагрузка</h2>
<p>Да, вы не ослышались, данная TDS практически не создает нагрузку на сервер БД, а на WEB-сервер нагрузка, небольше чем на простенький сайтик из тех, что размещают на narod.ru.</p>
<h3>клиентская часть</h3>
<p>Если вдруг кто-то, использовал lukmuTDs предыдущих версий, то он знает, что в ней все делится на схемы (schemas), цели (aims) и сайты (sites). В меню сайты задаются, по желанию, сайты откуда идет траф, в целях &#8211; куда пойдет траф, и в главном меню задаются сами схемы потока трафика, т.е. из какого сайта на какую цель/цели пойдет трафик, в каких количествах, какой браузер и регион.</p>
<p>Так вот, основная ресурсоемкая задача &#8211; определить какой схеме принадлежит запрос. В предыдущих версиях этим занималась TDS, в результате чего были постоянные обращения к БД.</p>
<p>Теперь все не так, после создания всех схем БД больше не нужна и обращений к ней от трафика не будет. Все дело в том, что теперь схему и цель определяет сам браузер т.е. трафик сам себя обрабатывает. А если подробнее, то выбор за трафик осуществляет JavaScript, который загружается в браузер.</p>
<p>Но, тогда возникает резонный вопрос &#8211; как генерируется JavaScript, вся информация о схемах записывается в БД, значит при генерации скрипта задействуется БД тем самым нагрузка на БД не снижается. А вот и нет, JS генерируется только один раз, после того как вы создали или изменили схему, сайт или цель. После этого JS кэшируется и когда трафик запрашивает JS, он выдается из кэша <strong>без какого-либо обращения к БД и минимальном участии PHP</strong>, что в данном случае равносильно запросу обычной статической HTML странички.</p>
<h3>модуль определения региона</h3>
<p>Этот модуль при больших объемах трафика (свыше 500 000 запросов) желательно разместить на отдельном хостинге, при меньших объемах можно оставить и на том же сервере что и главная часть.</p>
<p>Он представляет из себя один PHP-скрипт и директорию с файлом, куда будут ненадолго записыватся запросы. Его необходимо будет отдельно сконфигурировать, но об этом ниже.</p>
<p>Как видите здесь вообще нет БД, а все участие PHP описывается на 40 строчках, с учетом комментариев. Т.е. в данном случае нагрузка на сервер так же не далека от выдачи статической страницы.</p>
<h3>основной интерфейс TDS. модуль управления</h3>
<p>Интерфейсная часть по сравнению с прошлыми версиями потерпела серьезные изменения. Обращения к БД происходит только в 2-х случаях:</p>
<ul>
<li>при изменении схемы, сайта или цели</li>
<li>при обновлении статистики</li>
</ul>
<p>Для первого случая, все итак понятно &#8211; трафик стабильно идет, покупатели надежные, деньги капают &#8211; ничего менять не надо &#8211; обращений к БД нет.</p>
<p>Что касается статистики, то частоту ее обновления вы настраиваете сами. Поставите 1 час &#8211; про БД вообще забудите, поставите 30 сек &#8211; хостинг вас забанит. Короче, частота настраивается cron&#8217;ом т.к. скрипт обновления будет запускатся именно им, при гигантском трафе нормальныи будет 20-30 минут, если трафик не превышает 30-50к то можно поставить и 5 минут.</p>
<h2>интерфейс</h2>
<p>Как я уже говорил, интерфейс изменился. Самым главным новшеством является возможность множественного выбора целей, иначе говоря, создания параллельных потоков трафика.</p>
<h3>параллельность и объединение</h3>
<p>Зайдем в меню схемы и увидим</p>
<p><a href="http://blog.lukmus.ru/wp-content/uploads/2010/10/schms.png"><img class="aligncenter size-full wp-image-551" style="margin-top: 5px; margin-bottom: 5px;" title="schms" src="http://blog.lukmus.ru/wp-content/uploads/2010/10/schms.png" alt="" width="417" height="130" /></a>возможность выбрать для одного потока несколько целей, несколько сайтов и группы регионов и браузеров. Насчет сайтов, регионов и браузеров я думаю все понятно, ничего сверхъестественного тут нет. А вот с групповой политикой целей разберемся.</p>
<p>В предыдущих версиях TDS перенаправляла трафик на цель обычным редиректом, сейчас же все не так. Как уже говорилось выше, во-первых теперь этим занимается не TDS, а JavaScript из кэша, а во-вторых теперь нет редиректов, а есть формирование HTML-страницы с таким количеством iframe&#8217;ов, какое заданно в схемах, а точнее сколько целей задано на конкретную схему.</p>
<h3>процентное деление потока</h3>
<p>Как видно на предыдущем скрине, теперь трафик можно разделять т.е. не паралельно пускать, а именно делить. Чтобы это понять надо либо прочитать про интерфейс предыдущих версий, либо читать далее.</p>
<p>Схема для запроса из потока выбирается в соответсвии с позицией схемы в меню т.е. представим:</p>
<ol>
<li> идет запрос на сайт, где стоит ифрейм на TDS</li>
<li>TDS выдает из кэша JS</li>
<li>JS просматривает все схемы сверху вниз и выбирает схему с наивысшей позицией, которой удовлетворяют характеристики запроса (рефер, регион, браузер)</li>
</ol>
<p>Допустим запрос из потока трафика не удовлетворил первой схеме, тогда он проверяется второй. Пусть он удовлетворил 2-й и если во 2-й схеме процент 100%, то на этом выбор закончен. Если же процент скажем 50%, в таком случае на помощь идет теория вероятности.</p>
<p>Сейчас я расскажу очень простой принцип, однако, не все знают что он носит имя метод Монте-Карло. Так вот, если процент отличен от сотни, то генерируется случайное число от 0 до 100 и если процент больше либо равен случайному числу, то трафик идет по выбранной схеме, в противном случае он будет дальше перебирать схемы. Именно поэтому рекомендуется в качестве последней схемы ставить например google.com-ALL-ALL-ALL-100%.</p>
<p>Так же в схемах есть управляющие кнопки:</p>
<ul>
<li>редактировать</li>
<li>удалить</li>
<li>поднять вверх</li>
<li>остановить</li>
<li>обнулить статистику</li>
</ul>
<p>И кнопка &#8216;поднять вверх&#8217; служит именно для поднятия приоритета схемы, короче для того, что я описал выше.</p>
<h3>меню promo</h3>
<p>Как и раньше в promo выдаются ссылки и криптованные ссылки на TDS т.е. те которые нужно вставить в захваченый сайт. Однако теперь ссылки делятся на 2 категории:</p>
<ol>
<li>JAVASCRIPT LINKS</li>
<li>PHP LINKS</li>
</ol>
<p>Такое разделение объясняется тем, что они ведут на разные обработчики трафика TDS. Так как lukmuTDs v1.1x может работать в 2-х режимах:</p>
<ol>
<li>как раньше т.е. трафик обрабатывается TDS (PHP LINKS)</li>
<li>по-новому т.е. трафик обрабатывается JS из кэша (JAVASCRIPT LINKS)</li>
</ol>
<p>Как и раньше ссылки представляются в 3-х видах:</p>
<ol>
<li>естественный</li>
<li>закриптованный методом Packed</li>
<li>закриптованный методом Packed и облаченный в ASCII-коды, дабы не было никаких ковычек (часто нужна, когда ссылка на TDS вставляется не в файл, а в БД)</li>
</ol>
<p>На дне страницы есть еще форма, куда можно вбить свою ссылку и оттуда она выйдет закриптованной и облаченной в ASCII.</p>
<h2>установка и конфигурация</h2>
<h3>установка</h3>
<p>Здесь я рассмотрю установку на 2 сервера, установка на 1 сервер происходит аналогично.</p>
<ol>
<li>кидаем на первый сервер (geo) скрипт geo.php и папку logs</li>
<li>выставляем права 0777 на logs и на файл, внутри папки (по умолчанию kju_log)</li>
<li>все остальное кидаем на главный сервер с TDS</li>
<li>дамп БД импортируем из файла с дампом (lukmutdsv1.11.sql)</li>
<li>выставляем права на папку cache 0777</li>
</ol>
<h3>конфигурация</h3>
<h4>GEO-сервер</h4>
<p>Отворяем файл geo.php и видим в начале файла:</p>
<p><code>//config<br />
$key="key_which_2_auth_on_geo";<br />
$statfile="logs/kju_log";<br />
//===================</code></p>
<p>$key &#8211; ключ, по которому основной модуль TDS будет синхронизироватся с GEO. Вбиваем туда бессмысленные набор букв и цифр.</p>
<p>$statfile &#8211; путь до файла-лога.</p>
<h4>основной модуль TDS</h4>
<p>Открываем config.php и видим:</p>
<p><code>define('inc_dir',$_SERVER['DOCUMENT_ROOT']."/includes/");<br />
define('ua_pass',md5("this_is_random_symbols")); //user-agent pass<br />
define('uauth',false); // user-agent auth on/off<br />
//js-cookies<br />
define('ltds2c','this_is_random_symbols');<br />
define('uniqc','this_is_random_symbols_too');<br />
//geo<br />
define('geo_location','http://path2.site.with.geo.com/geo.php');<br />
define('geo_key','key_which_2_auth_on_geo');</code></p>
<p>Константа ua_pass &#8211; ключ авторизации по header&#8217;у браузера, ее можно выключить если в константе uauth выставить false (по умолчанию так и стоит).<br />
Константы категории js-cookie &#8211; рудимент от версии 1.10 (данная версия 1.11), однако его все равно надо заполнить какими-нибудь символами.<br />
geo_location &#8211; путь до geo.php, geo_key &#8211; ключ для сбора статистика, указываем то что забили в geo.php.</p>
<p>Теперь открываем includes/db_config.php и настраиваем доступ к БД:</p>
<p><code>$db_host="localhost";<br />
$db_user="tds_db_user";<br />
$db_pass="tds_db_pass";<br />
$db_name="tds_db_name";<br />
$sol="a_lot_of_random_symbols";<br />
$sol_pass="a_lot_of_random_symbols_too";<br />
$db_type="mysql";<br />
$db_host="localhost";</code></p>
<p>Заполняем пользователя, пароль, имя и хост БД. Затем придумываем соли.</p>
<p>Теперь осталось только поставить в cron&#8217;е запуск скрипта getstat.php и частоту его запуска.</p>
<p>TDS готова. Заходим на сайт с TDS и регистрируемся, после чего заходим в TDS.</p>
<h4><a href="http://www.sendspace.com/file/dnpowq" target="_blank">Скачать lukmuTDs v1.11.</a></h4>
<p>P.S. а ведь была еще и lukmuTDs v1.1. У нее статистика считалась по AJAX&#8217;ому отстуку, но как показала практика такая стата не реалистична т.к. не смотря на то что ajax-вый запрос отправлялся на хост с которого был загружен JS-скрипт (обычная метода обхода ограничения xmlhttprequest на тот же домен, что и страница) не многие браузеры все же отправляют запрос.</p>
<hr />
<h2>патч для lukmuTDs v1.11</h2>
<p>Скачать: <a href="http://www.sendspace.com/file/jp749m">http://www.sendspace.com/file/jp749m</a><br />
Исправлена ошибка в работе getstat.php, когда запускается от cron&#8217;а. В config.php введен новый параметр &#8211; полный путь к директории TDS.</p>
<hr />
<h2>lukmuTDs v.1.111</h2>
<p>Скачать: <a href="http://www.sendspace.com/file/bgv6ak" target="_blank">http://www.sendspace.com/file/bgv6ak</a></p>
<p>Исправлена ошибка в обновление последнего визита с сайта.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lukmus.ru/2010/10/27/lukmutds-1-1-raspredelennaya-tds-minimum-nagruzki/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
