User Tools

Site Tools


ru:update_46

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ru:update_46 [2014/01/29 18:20] (current)
Line 1: Line 1:
 +====== Update 46 ======
 +
 +===== Мультидоменность =====
 +
 +Основная часть апдейта - мультидоменность и мультисерверность ротации.
 +Как это реализовано: создается 1 сайт-база, на который собираются галеры и сетка сайтов, которые используют эту базу. Те изменения в одной базе автоматически отражаются на всей сетке. 
 +
 +Технически выглядит это так: например у нас есть 3 сайта. Ставим скрипт на все 3 сайта. Допустим сайт 1 у нас мастер (те на нем будет вся база тумб\галер), а сайты 2 и 3 - слэйвы, те они используют базу мастера с галерами. На мастере набираем галеры, грабим тумбы, создаем кастом гали, на слэйвах в Rotation - Settings прописываем мускл базу мастера. Нажимаем "Link to This DB" и сайты 2 и 3 превращаются в слэйвов, те используют базу тумб мастера.
 +
 +**Чем это удобно:**
 +  - Не надо копировать тумбы, кастом гали и тп. Все это делается 1 раз и автоматически расползается по всей сетке.
 +  - Спонсоры - аналогично, общие для всей сетки сайтов.
 +  - 10 доменов юзающих 1 базу создают меньше нагрузки чем 10 отдельных баз.
 +  - Контент грабится только на 1 сайте = не надо настраивать кроппрофайлы и прочие настройки ротации на нескольких копиях.
 +  - Можно создать кастом галю на мастере, при этом она будет отображаться в "своем" дизайне на каждом из слэйвов
 +  - Нет ограничений на сервак, те мастер может быть на серваке 1, а слэйвы на серверах 2 3 4 5 и тп. Более того, можно выделить и оттюнинговать 1 сервер под мускл, а сами сиджи поставить на другой.
 +
 +
 +**Ограничения:**
 +  - Для статусов галер - они общие, те отдельно делать шифт на слэйвах нельзя
 +  - Для названий темплейтов кастом галер - они должны быть одинаковые для все слэйвов.
 +  - У одного сдэйва может быть только 1 мастер, у мастера - может быть неограниченно слейвов.
 +
 +**Общие данные для мастера и слэйвов:**
 +  - Вся база тумб, включая статусы, титлы, дески, таги
 +  - База тагов и как следствие - облако тагов
 +
 +
 +**Собственные данные у каждого слэйва:**
 +  - Статистика по кликам, показам, цтр тумб
 +  - Категории общие, но описания, custom vars - могут быть собственные у каждого. Более того, категории могут отключаться для конкретного сайта. 
 +
 +
 +**Несколько ниш на одном мастере.**
 +Если у вас мастер мультинишевый, то вы можете из него быстро сделать несколько нишевых сайтов. Для этого надо:
 +  - Поставить скрипт на новый домен
 +  - Залинковать на мастера
 +  - На этом слэйве сделать активными только нужные категории 
 +
 +==== Хранение тумб ====
 +
 +  * Если на мастере вы храните тумбы локально (например, по дефолту она сохраняются в scj/thumbs) то на слэйве в Rotation - Settings надо прописать Alt hosts домен мастера (именно домен, не урл, не путь и тп, а домен например domain.com). Если это объяснить проще то получается так: на мастере URL to thumbs стоит по дефолту /scj/thumbs/. Вы сграбили галю, скрипт сохранил тумбу условно ИД 123 в файл scj/thumbs/123.jpg и записал в базу УРЛ к ней как /scj/thumbs/123.jpg. Те на страницах везде будет  /scj/thumbs/123.jpg и на слэйве в том числе. Поэтому на слэйве надо прописывать в альт хосты master.com что б урлы до тумб на слэйве получались http://master.com/scj/thumbs/123.jpg
 +  * Обратите внимание, что часто стоит антихотлинк картинок (и это правильно конечно), поэтому убедитесь, что для на местере разрешен хотлинк для слэйва. Если вы не знаете как настраивается антихотлинк - обратитесь к админу.
 +
 +
 +
 +**Домены на разных серваках**
 +  * Местер и слэйв могут быть на разных серваках, на это нет никаких ограничений, однако есть 2 "но"
 +  * желательно что б они были в одном датацентре
 +  * в зависимости от настроек мускл бывают разрешены конекты только с локалхоста, если со слэйва не конектит на мастер - надо попросить админа решить этот вопрос.
 +
 +
 +**Копирование файлов**
 +  * А этом апдейте, как и в большинстве других, были внесены добавления в файлы cgi/index.php and cgi/out.php. 
 +  * Скрипт пишет только в свой каталог, что б нечаянно не переписать файлы на корне вашего домена (вдруг там уже есть ваш собственный индекс)
 +  * По этой причине если у вас эти файлы находятся на корне, то их надо скопировать В БИНАРИ моде на корень
 +  * Дабы это не делать при апдейтах вы можете попросить админа поставить на корне домена симлинки, аналог ярлыков в виндовс. Те на корне домена будет index.php, который на деле будет просто ярлык на scj/cgi/index.php  и тоже самое с out.php
 +
 +
 +
 +==== Удаление тумб ====
 +
 +  * до 46 была проблема при удалении большого кол-ва тумб, например у спонсора 10к тумб, вы удаляете спона, скрипт пыдается это удалить сразу, но не успевает - получается таймаут. Это усугубляется если надо удалить не просто тумбы, а кастом гали.
 +  * начиная с 46 тумбы удаляются по крону. Те когда вы жмете в админке "удалить" тумбы не удаляются мгновенно, а переходят в статус 'Marked for deletion', раз в 10 минут крон смотрит есть ли такие и удаляет
 +  * если надо удалить "прямо сейчас" - запускаем rot.php с параметром process_deleted=true 
 +  * <code>cd /PATH_TO_/scj/bin/; env HTTP_HOST=yourdomain.com php rot.php process_deleted=true </code>
 +  * единственое исключение: если вы удаляете тумбы в Rotation - List thumbs и удаляется меньше 30 тумб - то удаление происходит сразу.
 +
 +
 +===== Дополнения и изменения в ротации =====
 +
 +**mod_rewrite URLs** 
 +Как вы знаете в новой роатции урлы выглядят примрено так /gallery/описание-галеры/gallery_id/index.html. [[New Rotation FAQ]] В 45 в урлах галер точки, запятые и прочие "лишние" символы заменялись на "_", а теперь заменяются на "-"  (поменяли в соотв с рекомендациями гугла)
 +
 +
 +**Хранение контента**
 +
 +Контент можно хранить на разных серверах. Те тумбы ротации можно складывать на быстрый сервер, а галерный контент (большие тумбы, мувики) - на другой сервер, где например траффик дешевле, но канал не такой быстрый.
 +
 +
 +
 +==== Темплейты ====
 +
 +
 +Есть небольшое изменение: до 46 темпелейты header and bottom по умолчанияю присоединялись к каждой странице. Это было не совсем удобно в некоторых случаях и поэтому с 46 они больше не подключаются автоматически. Теперь если надо в одном темплейте подключить другой надо использовать таг 
 +  <!--INCLUDE_TEMPLATE_header--> - например для вклчюения темплейта header
 +
 +Таким же образом можно инклудить любой темплейт. 
 +<code>
 +Для обратной совместимости при апдейте в начало каждого темплейта будет добавлено <!--INCLUDE_TEMPLATE_header--> и в конце <!--INCLUDE_TEMPLATE_bottom-->
 +</code>
 +
 +**NOTE** для обратной совместимости при апдейте в начало и конец каждого темпелйта автоматически добавляется <!--INCLUDE_TEMPLATE_header--> и <!--INCLUDE_TEMPLATE_bottom-->. Обратите внимание, что в скрипте есть тн Developer mode for templates [[New Rotation Templates]], суть которого в следующем: скрипт хранит темпелйты в базе. Однако иногда удобнее редактировать темплейты на фтп, нежели в админке. Девелопер мод - это когда скрипт при каждой загрузке страницы проверяет наличие наличие файлов на фтп и, если они есть, загружает их в базу. Это конечно тормозит сервак, тк на каждый запрос он вынужден проверя есть ли темплейты на диске, скопировтаь их в базу и тп. Поэтому это используется только во время натягивания дизайна, а потом его надо выключать. 
 +Однако выяснилось, что выключать его забывают. Получается следующее: ладно что сервак немного больше нагружен, чем следовало бы, но апдейт добавляет в темплейты <!--INCLUDE_TEMPLATE_.... , а при следующей загрузке страницы темплейты снова берутся с диска и изменения сделанные апдейтом затираются. Rotation - CMS pages - developer mode должен быть вылючен.
 +
 +
 +==== Custom galleries predefined meta tags ====
 +
 +Rotation - groups - Group Custom Phrases (PATH to file). 
 +
 +При создании кастом галеры скрипт может взять рендомную строку из файла и записать ее в поле meta_description и позже вы можете вывести 
 +<code> <!--META_DESCRIPTION-->  </code>
 +в вашем темплейте. Это удобно для создания дополнительных кейвордов, по которым может быть проиндексена ваша галера.
 +
 +
 +==== Таги ====
 +
 +
 +Rotation Tags - до 46 скрипт автоматом брал топ 10% тагов и выводил в облаке. Это было не всем удобно. Теперь таги не живут своей жизнью, а вы можете их редактировать из админки. Delete для тага - значит этот таг НЕ будет показанв облаке, Approve - будет. Но с Approve есть ньанс. При апруве можно так же задать заменитель\синонин (replace). Например, есть таги test и tested, было бы удобно заменить tested на test везде. Для этого мы ставим для tested апрув + в поле replace вписываем test. Скрипт у всех галер таг tested будет заменять на test. 
 +Получить старый вариант очень просто - зайти в таги и кликнуть top 10.
 +
 +
 +
 +**Скимминг на галерах**
 +
 +Добавлена новая опция - скимминг на гадерах. Пока тестовая тк не ясно есть ли от нее отдача. Смысл следующий: когда серфер заходит на кастом галерею и кликает на тумбы - ему открываются большие картинки, можно сделать так, что бы вместо большой картинки его периодически кидало например на спона.
 +
 +Rotation - CMS - Tube Settings можно поставить **custom gallery skimming** например в виде 
 +<code>
 +100%,70%trader.com,70%sponsor,50%sponsor_join,100
 +первый клик на контент (100 и 100% одно и тоже, можно пистаь как удобнее)
 +второй: 70% контент остальные соотв. 30% - /scj/cgi/out.php?member=trader.com,
 +3й : 70% контенкт 30% спонсор ( на урл который прописан у спона в site url)
 +4й : 50% контента 50% спонсор ( урл - join url),
 +5 и далее - 100% контент
 +</code>
 +
 +
 +
 +==== Tube import ====
 + ([[Tube Import]])
 +
 +Если вы используете Tube Import то можно добавить спонсоров по названиям тубов например xvideos.com, porntelecast.com и тд (важно что бы домен туба был прописан в поле Site) и тогда при добавлении галеры ей будет назначен соотв. спонсор. Если спонсора с таким именем нет, для добавленной гали спонсор будет указан из поля Rotation - Groups - Tube Import - Set Sponsor.
 +
 +Это актуально только для Tube Import.
 +
 +
 +==== Recreate visited pages ====
 +
 +
 +Rotation - Special - Recreate visited pages - скрипт ставит секретную куку вашему браузеру на 10 часов (можно снять куку в любой момент там же). Если вы зайдете с этой кукой на любую страницу вашего сайта, эта страница будет пересоздана (те сброшен кеш именно для этой страницы). Бывает полезно при изменении дизайна какой-то одной определенной страницы.
 +
 +
 +
 +==== Время кеша (CACHE_TIME) ====
 +
 +
 +Изначально время кеша надо было прописывать в файле common.php , что не совсем удобно если надо было поменять (менять из админки конечно удобнее). Поэтому в версии 46 эта настройка и была вынесена в сетинги ротации. Надо обратить внимание что опять же для обратной совместимости время кеша берется в первую очередь из файла common.php как и прежде, и только если оно не указано в файле - тогда берется из админки.
 +
 +
 +**Скорость граба (Grabber Speed, per minute )** 
 +
 +В сетингах ротатора появилась отдельная настройка, которая регулирует скорость граба. По дефолту скрипт грабит 3 галеры в минуту. Если вы видите что сервак не нагружен - можно поставить больше, если не знаете как смотреть нагрузку сервака - лучше оставить как есть.
 +
 +
 +**Проверка галер ([[Gallery Checker]])**
 +
 +Как оказалось, многие не используют в принципе удобный механизм автоматической проверки галер. Он в 46 был немного изменен дабы создавать меньше нагрузки на больших базах, но основной принцип не изменился. 
 +
 +
 +==== Навигация ====
 +
 +
 +Так же называют "пагинация", простыми словами - ссылки для "листания" страниц 1 2 3 и тп.
 +
 +Базовый вариан выглядит примрено так:
 +<code>
 +
 +<navigation>
 +<li><a href="/category/<!--CATEGORY_ID-->/<!--CATEGORY_NAME-->/<!--SORT_ORDER-->/<!--PAGE_NUM-->/" title="<!--PAGE_NUM-->"><!--PAGE_NUM-->/a></li>
 +</navigation>
 +
 +</code>
 +
 +Однако с большими базами нагрузка на подсчет конкретного кол-ва тумб в категории\поиске начинает нагружать базу, в то время как пользователю не важно у вас 123444 галеры или 134567. Более того: обычный пользователь обычно никогда не ходит на последние страницы, просто потому что ему не интересны наименее релевантные результаты поиска или последние по цтр тумбы. Именно поэтому гугл пишет "Found 10 of about 100000 results" и дает ссылки только на первые 10 страниц.
 +
 +Начиная с апдейта 46 введен следующий ньанс: если у вас на странице есть навигация в базовом варианте - все будет работать как и раньше в целях совместимости. Если у вас большая база и вы хотите скономить ресурсы то имеет смысл заменить ее на такой вариант 
 +
 +<code>
 +
 +Если тага <navigation> нет, то точное кол-во не подсчитывается, это экономит ресурсы.
 +
 +Дабы сохранить навигацию можно использовать следующий пример
 +
 +<?php if ('<!--PREV_PAGE-->') { ?>
 +<li><a href="/category/<!--CATEGORY_ID-->/<!--CATEGORY_NAME-->/<!--SORT_ORDER-->/<!--PREV_PAGE-->/" title="<!--PREV_PAGE-->"><!--PREV_PAGE-->/a></li>
 +<?php } ?>
 +
 +<?php if ('<!--NEXT_PAGE-->') { ?>
 +<li><a href="/category/<!--CATEGORY_ID-->/<!--CATEGORY_NAME-->/<!--SORT_ORDER-->/<!--NEXT_PAGE-->/" title="<!--NEXT_PAGE-->"><!--NEXT_PAGE-->/a></li>
 +<?php } ?>
 +
 +
 +</code>
 +
 +
 +
 +**NOTE** апдейт удаляет из таблицы rot_galleries несоклько ненужных теперь полей. Если у вас большая база (скажем 50к+) и\или на сервере большая нагрузка, рекомендуется остановить все задания крона перед запуском апдейта.
 +
 +
 +
 +**Sphinx поиск**
 +
 +Если вы используете [[TS Sphinx]] то хотелось бы отметить что в нем есть несоклько вариантов поиска, которые можно менять в scj/includes/config.php
 +
 +<code>
 +$config['sphinx_match_mode'] = 0; 
 +
 +0 - дефолтный вариант.
 +
 +значения могут быть 
 +"SPH_MATCH_ALL",
 +"SPH_MATCH_ANY",
 +"SPH_MATCH_PHRASE",
 +"SPH_MATCH_BOOLEAN",
 +"SPH_MATCH_EXTENDED",
 +"SPH_MATCH_FULLSCAN",
 +
 +более подробно о различии между этими вариантами можно прочесть в http://sphinxsearch.com/docs/
 +
 +</code>
 +
 +==== Импорт "based on filter keyword" ====
 +
 +В импорте в выборе категории появилась тестовая фича "based on filter keyword". Работает следующим образом:
 +1. в Groups - filter keywords для каждой группы добавляем кейворды. Пока поддерживается только простой формат (word - значит слого должно быть в описании, тогда попадет в эту группу, и -word значит слова быть точно не должно)
 +2. при импорте контента выбираем based on filter keyword и скрипт пытается определить категориюпо кейвордам.
 +
 +
 +**Небольшие изменения**
 +
 +  * Rotation - Import : можно просто аплоадить дамп файл, актуально для больших дампов. 
 +  * Rotation Grabber Proxy : можно юзать запароленные прокси
 +  * Rotation - Cell Stats : добавлена статистика для каждого темплейта. Можно вычислить какой темплейт более кликабельный.
 +  * Из таблицы rot_galleries удалены некоторые лишние теперь колонки. Обратите внимание, если у вас большая база - перед началом апдейта остановите все кроны, потмоу что для большой базы прибить несколько колонок может быть довольно длительной процедурой.
 +  * Rotation Groups - добавлен massdelete 
 +  * Rotation  - Sponsors : сайты сгруппированы по спонсорам. Надеюсь будет удобно.
 +
 +
 +===== Дополнения и изменения в Trade части =====
 + 
 +**Добавление трейдеров**
 +
 +Теперь в форме Add Trade можно нажать на карандашик рядом урлом и ввести просто урлы (либо url|title|desc) списком и добавить много трейдеров одним кликом.
 +
 +**Бэкапы**
 +
 +Начиная с ап 46 бекапы создаются стандартной утилитой mysqldump, проверьте Settings - Other settings - Mysqldump  path 
 +
 +**Скимминг**
 +
 +Skimming - можно добавлять домен трейдера в строку скимминга. Технически это еще один вариант продажи  трафа. Например, добавляет брокера как трейдера 'tb.com', делаем его неактивным, ставим default skimming  '100,50,tb.com,60' - это значит первый клик 100% на контент, второй - 50% skimming, 3й - на брокера, все остальные - 60% skimming. Удобно в случае если у вас несоклько брокеров и надо смотреть конкретно сколько куда ушло.
 +
 +**Skimming schemes** дополнение к дефолтному скимингу. Пример использования - out.php?url=blabla&p=s1 (s2,s3,s4,s5).
 +
 +
 +==== Топлисты ====
 +
 +
 +C давних времен **темплейты** топлистов хранились в виде файлов в scj/top. При переносе сиджа это было не совсем удобно, тк надо было кроме дампа мускла копировать отдельно и топлисты. Теперь топлисты так же в мускле и просто переносом дампа решается весь вопрос перезда.   Но кроме этого у топлистов появилась новая фича для мультинишевых сиджей. Например, у нас 5 групп трейдера и 10 трейдеров (по 2 в каждой). Мы хотил сделать нишевые топы для каждой группы, что б в кажодом топе были только те трейдеры, которые в данной группе. Ранее надо было создать 5 темплейтов и инклудить в конкретной странице. Теперь можно сделать 1 темплейт и , если указано что он multiniche, скрипт создаст топлист для каждой группы (например, название темплейта top.html, скрипт создаст общий top.html со всеми трейдерами, а так же group1.top.html, group2.top.html и тд для каждой группы). В шаблонах темплейт вставляется как  
 +<code> <?php include('FULLPATH_to_/scj/top/<!--CATEGORY_SAFE_NAME-->.top.html'); ?>  </code>
 +
 +
 +
 +**Качество кликов**
 +
 +До 46 было два пунта в статистике ИП: ИП котоыре пришли от трейдера и данные какие из этих ИП кликали у вас. Теперь добавлся еще один - данные о том какие ИП ушли к этому трейдеру.
 +
 +
 +==== Новый параметр для out.php &link2=blabla ====
 +
 +
 +Смысл его в том, что по дефолту для ротации используется &link= и соответственно собственную статистику по линкам при использовании встроенной ротации собрать не получится. Для этого теперь есть параметр &link2= который тоже самое что и &link= , но его можно спокойно использовать и со встроенной ротацией.
  
ru/update_46.txt · Last modified: 2014/01/29 18:20 (external edit)