gevent на FreeBSD

В этом топике соберем gevent — сетевую библиотеку для Python, использующая libevent. В состав библиотеки входит быстрейший WSGI сервер. Соберем gevent и запустим один из примеров — простенький чат, использующий django и gevent.

Для начала нам не помешает поддержка sqlite и imaging для нашего Python:

cd /usr/ports/databases/py-sqlite3
make install
cd /usr/ports/graphics/py-imaging
make install


Также естественно нужна libevent:

( Читать дальше )

Бенчмарк WSGI серверов Python

nichol.as/benchmark-of-python-web-servers

А также сравнение асинхронных серверов:

nichol.as/asynchronous-servers-in-python

FreeBSD 9 + Cherokee / uWSGI + PINAX

В данном топике рассмотрим такую интересную вещь, как Pinax — заготовку для создания сайтов на базе фреймворка Django (шаблонизатор, основные функции, web-сервер для тестировния), работающего в свою очередь на Python. Особенность Pinax в том, что нам предлагается не готовая CMS, а заготовки для разных типов проектов. Тут и регистрация пользователей с поддержкой openid и топики и комментарии и блоги, сообщества, твиты, галереи, теги и прочее. Для всего этого уже готова структура базы данных.

Начнем со сборки Cherokee из портов:

cd /usr/ports/www/cherokee
make install


Не забываем отметить галку uWSGI:

( Читать дальше )

HAProxy: академичный http прокси и балансировщик нагрузки

HAProxy — проект с довольно долгой историей, заложенные принципы очень просты и эффективны. Ничего лишнего, все ради скорости.

Читаем очень доходчиво написанную документацию

FreeBSD: firewall для web сервера за 5 минут

В данном топике мы за 5 минут настроим firewall на FreeBSD. Так как в моем случае сервер работает на xen, никаких усложнений в плане защиты от ddos, syn флуда и прочего я расписывать не буду, т.к. внутри виртуальной машины это делать бессмысленно. По всем этим вещам рекомендую, например, данное руководство Wouter Coene The OpenBSD Packet Filter HOWTO, ну и разумеется FAQ.

Правим /etc/rc.conf:

pf_enable="YES"


Создаем/правим файл /etc/pf.conf:

# re0 - сетевой интерфейс
net_if1="re0"

# пропускаем все на локальном интерфейсе
set skip on lo

# список tcp портов, которые будут открыты со внешки
tcp_services = "{22, 80, 8080, 443}"

# блокируем все входящие соединения, но разрешаем исходящие
block in all
pass out all

# разрешаем доступ со внешки к вышеперечисленным портам
# ключевое слово quick означает, что после этого правила
# никакие другие правила к пакетам применяться не будут
pass in quick on $net_if1 inet proto tcp from any to $net_if1 port $tcp_services


Стартуем (кстати, если делаете это на удаленном сервере, ssh соединение будет разорвано после старта pf).

/etc/rc.d/pf start


Вот такой минимализм. Работают только определенные TCP порты, ICMP отключен.

Также пример настроек для работы ftp сервера в пассивном режиме:

net_if1="re0"

set skip on lo

tcp_services = "{20, 21, 22, 1222, 80, 8080, 443, 6969, 5222, 5223, 9090, 9091}"

block in all
pass out all

pass in quick on $net_if1 inet proto tcp from any to $net_if1 port $tcp_services
pass in quick on $net_if1 inet proto tcp from any to $net_if1 port 49512 >< 65535

FreeBSD: простая замена sendmail'у

Иногда функции sendmail бывают избыточными, особенно когда сервер должен только отправлять сообщения. В FreeBSD можно sendmail заменить на упрощенный ssmtp (кстати, TLS им поддерживается) и настроить его на отправку писем через аккаунт на Google Mail.

Устанавливаем ssmtp из портов:

cd /usr/ports/mail/ssmtp/ && make install clean


Правим файл настроек /usr/local/etc/ssmtp/ssmtp.conf:

UseSTARTTLS=YES
[email protected]
mailhub=smtp.gmail.com:587
[email protected]
AuthPass=пароль


Т.е. письма будут приходить с ящика [email protected], при авторизации используется учетка [email protected] + пароль. На 587 порту работает TLS шифрование. Параметр root — адрес почты администратора, на который будут приходить сообщения системы.

Меняем стандартный sendmail на ssmtp:

mv /usr/sbin/sendmail /usr/sbin/sendmail.org
ln -s /usr/local/sbin/ssmtp /usr/sbin/sendmail


Теперь отправим письмо, например, на [email protected], для этого запускаем команду:

mail -v -s "TestSubject" [email protected]


… вводим текст сообщения, enter, точку и enter.

Сообщение будет отправлено, а мы также увидем подробные логи того, что происходит.

По мотивам вот этого.

Zabbix: распределенный мониторинг на Debian 6

В данном топике я распишу как быстро поднять zabbix (и сервер и агент) на debian 6. В качестве web сервера я использую минималистичный lighttpd.



Устанавливаем mysql, lighttpd, php5-cgi и все необходимое для сборки:

( Читать дальше )

pingdom: проверяем скорость загрузки сайта

tools.pingdom.com — 3 полезных сервиса — проверка скорости загрузки страниц, проверка DNS, а также ping и traceroute:



Приятно, что сервис помнит старые замеры (для этого не нужно авторизоваться):

Turnkey Linux: упрощаем себе жизнь

Turnkey Linux представляет собою множество готовых к использованию образов виртуальных машин (vmware, virtualbox, xen) с предустановленными, например, Zimbra, ejabberd, LAMP, PostgreSQL и многим другим. Очень упрощает установку виртуальных машин в случаях, когда нужно просто попробовать что-то.

ConVirt: управление xen и kvm серверами

ConVirt поддерживает управление несколькими серверами, управление XEN (полная и паравиртуализаци и KVM), в web-интерфейсе есть VNC и ssh консоли, симпатичный мониторинг ресурсов, поддержка шаблонов ОС.



Мануал по установке в redhatоподобных дистрибутивах:

www.convirture.com/wiki/index.php?title=C2_fedora_installation