Хранение img на бесплатном сервисе ImageShack




Фотографии сперва ресайзатся, потом заливаются на сервер ImageShack.
Поддерживаются: вставка изображения в топики, комментарии к ним, аватарки, фотка в профайле, и фотосет.

Реализована поддержка одного флага в конфиге, называется: do_local_reserve_copy. Если установить данный флаг в true, то фотография после ресайза не будет удалятся с вашего сервера, так же в БД будет добавлено строчка соответствия вида: файл на сервере ImageShack — файл на вашем сервере. Для чего это нужно. Для того, что бы если вдруг по каким-то причинам вас забанят, вы сможете восстановится с данного бекапа. если do_local_reserve_copy false, то файл после заливки на сервер ImageShack удаляется с вашего сервера.

Получить ключ dev key для вашего домена здесь: stream.imageshack.us/api/

Скачать плагин: 2me.be/x/imageshack.rar
зеркало с гугл сервисов.

Новогодний рецепт для е-магазина. Или как заработать на купонах.

  • поднять цену в 3 раза
  • дать скидку на групоне 50%
  • отправить заказы
  • подсчитать профит

Для размещения на купонном сайте, надо дать большую скидку. Обычно не меньше 50%. При этом надо отдать еще половину от оставшихся 50% купонному сервису, который тоже хочет заработать.

Не понятно? Простой пример: Интернет магазин закупил у поставщика партию арбузов по 50р. за штуку. Сделал наценку скажем, в 100% и продает арбузы по 100р. Для привлечения толп покупателей через купонный сервис, надо дать скидку в 50%, т.е. продавать арбузы по 50р.

Казалось бы, сработал в ноль, привлек покупателей, которые попробуют сказочный сервис магазина и может быть еще вернутся и купят кроме арбузов еще много всего? НО. С оставшихся 50р. продавец получает всего 25р., т.к. купонный сервис берет себе 25р. В минус работать не каждый согласится.

Решение — задрать цены. Т.е. вместо 100р. за арбуз, ставим 300р. Купонный сервис дает скидку в 50% и покупатель забирает полосатого уже за 150р., которые делятся пополам между продавцом и купонным сервисом. Каждый получает по 75р. Купонному сервису побоку, он зарабатывает в любом случае. Продавец тоже не в накладе, т.к. он увеличивает оборот и за счет этого не сильно расстраивается, что маржа просела. Правда покупатель немного переплачивает.

Выделяем цветом комментарии топикстартера

Итак. Сделать это оказалось довольно легко. Как и с комментариями админа все делается также в два действия.

1. В файле comment.tpl находим следующие строчки:
<div id="comment_id_{$oComment->getId()}" class="comment {if !$oUserCurrent or ($oUserCurrent and !$oUserCurrent->isAdministrator())}not-admin{/if} {if $oComment->getDelete()} deleted{elseif $oUserCurrent and $oComment->getUserId()==$oUserCurrent->getId()} self{elseif $sDateReadLast<=$oComment->getDate()} new{/if}" >

и добавляем:
{if $oTopic and $oComment->getUserId() == $oTopic->getUserId()}topicstart{/if}

получаем:
<div id="comment_id_{$oComment->getId()}" class="comment {if !$oUserCurrent or ($oUserCurrent and !$oUserCurrent->isAdministrator())}not-admin{/if} {if $oComment->getDelete()} deleted{elseif $oUserCurrent and $oComment->getUserId()==$oUserCurrent->getId()} self{elseif $sDateReadLast<=$oComment->getDate()} new{/if} {if $oTopic and $oComment->getUserId() == $oTopic->getUserId()}topicstart{/if}" >

2. В файле comments.css добавляем стиль:
.comment.topicstart  { background: #желаемый цвет; }

Вот собственно и все. Напомню, что при должной сноровке и смекалке можно изменить не только цвет блока.

Другой цвет у комментариев админа

После несложных манипуляций можно получить другое визуальное оформление комментариев оставленных администратором сайта.
Все делается всего в два действия:
1. В файле comment.tpl в следующие строчки:
<div id="comment_id_{$oComment->getId()}" class="comment {if !$oUserCurrent or ($oUserCurrent and !$oUserCurrent->isAdministrator())}not-admin{/if} {if $oComment->getDelete()} deleted{elseif $oUserCurrent and $oComment->getUserId()==$oUserCurrent->getId()} self{elseif $sDateReadLast<=$oComment->getDate()} new{/if}" >

добавляем:
{if $oUser->isAdministrator()}admin{else}user{/if}

получаем:
<div id="comment_id_{$oComment->getId()}" class="comment {if !$oUserCurrent or ($oUserCurrent and !$oUserCurrent->isAdministrator())}not-admin{/if} {if $oComment->getDelete()} deleted{elseif $oUserCurrent and $oComment->getUserId()==$oUserCurrent->getId()} self{elseif $sDateReadLast<=$oComment->getDate()} new{/if} {if $oUser->isAdministrator()}admin{else}user{/if}"  >

2. В файле comments.css добавляем стиль:
.comment.admin  { background: #желаемый цвет; }

Вот собственно и все. Если подключить немного фантазии, то можно изменить не только цвет блока комментария, но и его визуальное оформление полностью. Надеюсь кому нибудь этот небольшой хак будет полезным.

Некоторые способы борьбы с DDoS

log2ban
Как работает log2ban
Для обнаружения ботов, каждый запрос к серверу, отмечается идентификатором из свойств запроса (например из IP адреса и URL: «1.2.3.4/login.php»). Когда количество обращений с определенным ID достигает установленного предела, в пределах временного окна обнаружения, IP клиента передается в качестве аргумента для внешней команды (BAN_IP_COMMAND) или собранных для пакетной блокировки (см. «Блокировка списков»).

Log2ban работает над логами сервера в реальном времени, и не предназначен для использования в качестве анализатора архива логов. Следует использовать средства файрволла, чтобы произвести саму блокировку (настройки и скрипты для ipset прилагаются в примере).

Скрипт читает лог в реальном времени, с помощью, например «tail -f» или аналогичную команду, как указано в конфигурации. Если команда посылает EOF, log2ban завершит свою работу. Если команда прекратить писать записи журнала на стандартный вывод, процесс log2ban будет висеть вечно.

Настройка
По умолчанию поддерживается шаблон логов Apache/Nginx. Изменения, внесенные в формат должны быть отражены в переменной ACCESS_LOG_RECORD_FORMAT.

Можно также настроить правила обнаружения. Наиболее важным параметром является TOLERANCE_MARGIN (количество хитов в окне). Второй наиболее важными являются WINDOW_SIZE (размер окна в слотах) и SLOT_INTERVAL. (размер слота в секундах) Более короткий интервал и увеличенный размер означает лучшее обнаружение (и худшую производительность).

Чтобы изменить правила вычисления ID, измените функцию «create_server_hit_id».

Чтобы изменить правила пропуска строки в логи, измените функцию «skip». По умолчанию пропускаются запросы на статические типы файлов.

Блокировка списков
Для использования блокировки по спискам, включите базу данных, обработайте логи какое-то время, а затем выполните
python log2ban.py print (banned | allbanned)

распечатать собранные IP-адреса на stdout. «banned» будет печатать только новые IP-адреса (с момента прошлого print banned), в то время как «allbanned» будет печатать каждый запрещённый IP, независимо от того, был он ранее напечатан или нет.

После нескольких дней IP-адреса будут разбанены, для получения их списка:
python log2ban.py print (unbanned)

Эта команда напечатает каждый IP, который был забанен в период current_time — DAYS_UNBAN, и удалит записи из базы данных.

Производительность
log2ban достаточно быстр сам по себе, но для очень быстрорастущих логов обработка запросов может стать проблемой. Рассмотрите возможность отключения регистрации запросов на статические ресурсы, такие как изображения, скрипты и таблицы стилей. Дальнейшая оптимизация может включать в себя более простой формате логов (CSV), вместо того чтобы использовать формат по умолчанию, который обрабатывается модулем apachelog через регулярные выражения.

Установка и интеграция с файрволлом
Процесс описан для Debian Squeeze 6.0, для других дистрибуций может отличаться.
Установите ipset:
sudo apt-get install module-assistant xtables-addons-source

sudo module-assistant prepare

sudo module-assistant auto-install xtables-addons-source

depmod -a

Проверьте что он работает
ipset -L

Если вы получаете не пустой ответ, например ошибки 'Module ip_set not found', то ipset не установлен правильно. Погуглите на предмет решения этой проблемы для вашей конкретной инсталляции. Общая идея в том, что модуль ядра ip_set должен быть локально скомпилирован и загружен в ядро.

Установите MongoDB, Python и PIP:
sudo apt-get install mongodb python-pip

Установите модули для питона:
sudo pip install apachelog pexpect pymongo

Склонируйте репозиторий log2ban:
git clone git://github.com/unicodefreak/log2ban.git

В файле log2ban.py, настройте следующую команду, если необходимо.
ECHO_LOG_COMMAND = "tail -f /var/log/nginx/access.log" 

Добавьте следующий текст в /etc/logrotate.d/nginx:
/var/log/nginx/*log {

 daily

 rotate 10

 missingok

 notifempty

 compress

 sharedscripts

 postrotate

 [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`

 /etc/init.d/log2ban stop

 /etc/init.d/log2ban start

 endscript

}

Установите скрипты
sudo mkdir /opt/log2ban

sudo cp log2ban/log2ban.py /opt/log2ban/

sudo cp log2ban/ipset-control.sh /opt/log2ban/

sudo cp log2ban/init-scripts/log2ban-debian.sh /etc/init.d/log2ban

sudo chmod +x /etc/init.d/log2ban

sudo chmod +x /opt/log2ban/ipset-control.sh


Запустите MongoDB
sudo /etc/init.d/mongodb start

Запустите log2ban
sudo /etc/init.d/log2ban start


Добавьте в root cron script следующую команду, например для обновления адресов каждые 5 минут
*/5 * * * * /opt/log2ban/ipset_control.sh update


Пусть поработает какое-то время. Проверьте, если какие-либо IPs are blocked:
sudo ipset -L

Если список похож на правду, то остался последний шаг — подключить iptables.
Добавьте строку:
-A INPUT -m set --match-set autoban src -j DROP

в файл /etc/firewall.conf и выполните
sudo /etc/init.d/networking restart

Как настроить cron для jimbot?

Смысл скрипта состоит в том, нужно периодически перезапускать бота, так как из-за утечек ресурсов через некоторое время бот создаст излишнюю нагрузку на систему.

При этом необходимо определять что бот уже запущен, чтобы не запускать лишних копий.
Скачать скрипт вы можете отсюда: bot.sh
Не забываем менять переменные в bot.sh, на ваши:
JAVA=/usr/bin/java //установленная java стандартно
JAR_HOME=/home/home/chat //записываем путь до папки с нашим ботом
JAR=jimb.jar //имя самого jar файла бота

Затем предоставьте ему(bot.sh) права на запуск.
chmod 777 bot.sh

1) Затем вводим команду crontab –e в putty
2) Появится редактор vi
3) Нажимаете кнопку INSERT на клавиатуре
4) Вводите задание (команду)
Например:
/home/bot/bot.sh // ПУТЬ до bot.sh

5) После ввода задания(команды), нажимаем ESC на клавиатуре
6) Далее пишем (тем самым сохраняя изменения в cron)
!w:

7) Выходим с редактора vi
!q:

8) Набрав «crontab -l» можно убедиться, что наши задания добавлены.

Теперь наш бот будет перезагружаться каждые сутки в 4 часа утра.

Самые дешевые ssl

Самые дешевые SSL сертификаты лучше всего покупать тут.


ООО «Системные интеграции»

Так же, они продают ISP панели. Но цена как везде. Доменные имена у них есть.
И занимаются настройкой серверов. Так же, настройкой и установкой разных виртуализаций.
Я же хочу отметить, именно ssl. Банальный Rapid ssl 300р всего.

Плагин Amason S3

После активации, обеспечит хранение загруженных картинок на серверах amason s3.

Фотографии сперва ресайзатся, потом заливаются на сервер амазон.
Поддерживаются: всавка изображения в топики, комментарии к ним, аватарки, фотка в профайле, и фотосет.

Скачать: 2me.be/z/amasons3_0.1.1.zip