It had been a while I wanted to have another solution for hosting and serving emails than Gmail. Especially because I am currently working on the Linux Kernel and at some point I would like to submit a few patches. Unfortunately, it is impossible to use Gmail for sending patches or even, to a greater extend, to be involved in the LKML.

Also I think it is pretty fancy (nerdy?) to have my own email address, i.e. joel@yourdomain.org.

At the same time, I have always heard that managing a full email stack (from the mx DNS records up to the IMAP and SMTP servers) is a pain. It can definitely happen that my server is down for a few days which would mean that my emails would be inaccessible in the meantime.

That is why I had this idea of using a stable frontend (i.e. via OVH, my hosting service company) before my own email server, so that whenever my server is down, I can still access my emails through this frontend. One could argue that I could just use the email facility that OVH provides but there are (at least) two reasons I prefer not to:

  • The mailbox OVH offers me is only 2G in size, which is fairly small nowadays.
  • I would like to manage my own data (I like the cloud, but only if it is mine!)

Here is a picture of what I wanted to achieve (thanks to Asciiflow for the following ASCII Flow Diagram):

+-----------+              +-----------+               +--------------+
| OVH       |              | MYSERVER  |               | LAPTOP       |
|           |              |           |           +-->|--------------|
| +-------+ | push/delete  | +-------+ | push/sync |   |  MAIL CLIENT +---+
| | IMAPS +----------------->| IMAPS +<------------+   +--------------+   |
| +-------+ |              | +-------+ |           |   +--------------+   |
| +-------+ |              |           |           |   | ANDROID      |   |
| | SMTP  |<-------+       |           |           +-->|--------------|   |
| +-------+ |      |       |           |               |  MAIL CLIENT +---+
+-----------+      |       +-----------+               +--------------+   |
                   +------------------------------------------------------+

In a few words:

  • OVH gives me the stable frontend. Whenever my server is down, I can still send emails through their STMP server and most of all I can still receive emails (they provide IMAP access as well as a RoundCube webmail).
  • If everything goes fine, then the emails are retrieved on my server (ideally using IMAP IDLE to minimize the communications) and deleted on OVH inbox (we will see later how we can actually have a backup of X days on OVH, so that if my server is down, I still have access to the most recent received emails on OVH).
  • My server offers a IMAPS access to my clients (laptop, android, etc.), also supporting IMAP IDLE.
  • The clients are synchronized with the server so all my emails are accessible offline (at least on my laptop; for android, I would limit the synchronization to a certain number of days).
  • The clients use the STMP server provided by OVH directly.

Everything pretty much relies on two (great) pieces of software: getmail and dovecot. Getmail will be in charge of fetching the emails from OVH inbox (using IMAP IDLE), and delivering them to dovecot. Dovecot will service the IMAPS access to the clients, as well as managing the mailboxes locally on the server.

NGINX великолепен! Вот только его документация по ограничению скорости обработки запросов показалась мне, как бы это сказать, несколько ограниченной. Поэтому я решил написать это руководство по ограничению скорости обработки запросов (rate-liming) и шейпингу трафика (traffic shaping) в NGINX.


Мы собираемся:


  • описать директивы NGINX,
  • разобраться с accept/reject-логикой NGINX,
  • визуализировать обработку всплесков трафика на различных настройках.

Зачастую, в силу того, что информация в сети распространяется не мгновенно, привязанные к серверу домены начинают работать не сразу. Чтобы не тратить время впустую, ожидая обновления кеша DNS, желательно сразу проверить настройку вашего DNS-сервера и убедиться, что по истечении 72 часов (это максимальное время обновления глобального кеша DNS) ваш домен заработает.

Первичная диагностика


Whois


Начать диагностику следует с запроса whois:
[root@dns ~]# whois firstvds.ru 
% By submitting a query to RIPN's Whois Service
% you agree to abide by the following terms of use:
% http://www.ripn.net/about/servpol.html#3.2 (in Russian)
% http://www.ripn.net/about/en/servpol.html#3.2 (in English).

domain: FIRSTVDS.RU
nserver: ns1.firstvds.ru. 82.146.43.2
nserver: ns2.firstvds.ru. 94.250.248.160
state: REGISTERED, DELEGATED, VERIFIED
org: CJSC "Pervyj"
registrar: REGTIME-REG-RIPN
admin-contact: http://whois.webnames.ru
created: 2002.08.07
paid-till: 2014.08.08
free-date: 2014.09.08
source: TCI

Last updated on 2014.03.18 03:36:35 MSK​

В данном примере мы видим, что домен проделегирован на сервера имен ns1.firstvds.ru. и ns2.firstvds.ru. с указанием IP-адресов (дочерние NS-сервера всегда прописываются с указанием IP). Это корректный вывод whois и примерно так должен выглядеть ответ whois для зарегистрированного и проделегированного домена. Исключение составляет IP, он указывается только для дочерних NS-серверов.

Определение

DNS (Domain Name System, «система доменных имён») — компьютерная распределённая система для получения информации о доменах. Основная область применения данной системы — преобразование имени хоста в IP-адрес и предоставления данных о маршрутизации почты. Хост — это любой компьютер или сервер, подключенный к локальной сети или интернету.

Принцип работы

Схематичное представление процесса определения определения IP-адреса по вводимому имени домена
Работа DNS достаточно проста, но из-за незнания её основ возникает основная масса проблем и вопросов при переносе существующего доменного имени и регистрации нового.

Вступление

В серверной среде работа с командной строкой занимает много времени. Часто используется оболочка bash – командная оболочка по умолчанию большинства дистрибутивов.

Вероятно, во время терминальной сессии общие команды будут повторяться часто, а вариации данных команд – еще чаще. Конечно, сначала набирать каждую команду вручную очень полезно, так как это – лишняя возможность попрактиковаться, но в какой-то момент это начинает надоедать и раздражать.

К счастью, bash-оболочка имеет некоторые довольно хорошо разработанные функции истории. Умение продуктивно использовать и управлять историей в bash позволяет тратить меньше времени на ввод команд, и  тем самым увеличивает объем выполненной работы. Как известно, среди разработчиков популярен так называемый принцип DRY (Don’t Repeat Yourself). Продуктивное использование истории в bash помогает работать с информацией согласно данному принципу.

Это руководство демонстрирует все функции на Linux Ubuntu 12.04, но почти все современные дистрибутивы Linux будут работать подобным образом.


Много где написано о том, как получить 100% и A+ по тесту от Qualys. При всём при том практически везде директивы ssl_ciphers и подобные даются как эдакие магические строки, которые нужно просто вставить, и надеяться, что автор не подводит вас под монастырь. Эта статья призвана исправить это недоразумение. По прочтению этой статьи директива ssl_ciphers потеряет для вас всякую магию, а ECDHE и AES будут как друзья да братья.

Слово Jumla на языке суахили означает «все вместе», «как одно целое».

Когда-то давно, довольно долгое время я верстал сайты на HTML/CSS/JavsScript и не имел никакого представления о CMS.
Пугающим моментом было то, что как я полагал владение PHP является крайне необходимым, однако по факту каких-то базовых знаний оказалось достаточно (простой код оказывается понятен программисту любого другого языка, а в дебри лезть не обязательно).
Для человека, владеющего только версткой и скриптами, довольно достаточно знать какие-то определенные моменты, для того, чтобы с ходу приступить к работе с Joomla.
Что-то в этих моментах схоже с другими CMS, что-то отличается.
Постарался изложить эти моменты кратко. Если бы они мне были известны сразу, то смог бы начать создавать администрируемые пользователями сайты гораздо быстрее.
Итак, если вы владеете HTML, но не имеете представления о CMS Joomla, то вам следует нажать кнопку ниже.

В этой заметке будет рассказано как с помощью iptables настроить системы с Ubuntu 9.10-11.04, Debian 5 и 6 для раздачи интернета другим компьютерам локальной сети. На простом примере будет показано как машину с двумя сетевыми интерфейсами (в один поступает интернет, из другого — «выходит») сделать шлюзом.

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

Она выдаст список работающих в данный момент сетевых интерфейсов. Среди них надо опознать те, что начинаются со слов «Link encap:Ethernet» — это интерфейсы сетевых карт. Как правило, это eth0 и eth1.
Теперь потребуется опознать в какой из них поступает интернет, а из какого «выходит». Проще всего это сделать по их ip-адресам.
Итак, допустим через eth0 вы получаете интернет (например через adsl-модем по протоколу ppp), а eth1 связывает вас с локальной сетью.

Практическое руководство по отправке Email сообщений из консоли Linux.


Вы узнаете как:
  • Отладить отправку сообщений с локального MTA сервера;
  • Проверить отправку Email из PHP;
  • Как прикрепить файл к Email сообщению из консоли;

Отправить сообщение из консоли:

echo "BODY" | mail -s "SUBJECT" your_email@gmail.com

Взял VPS, построенный на OpenVZ. Поставил туда Debian Lenny и всякие программы (обычный LAMP, по сути). С точки зрения потребления ресурсов ничего почти не настраивал, вышло где-то 200М занятой оперативной памяти (сразу после старта).
Написал

ulimit -s 1024

в /etc/init.d/rc ближе к верху. Перезагрузился. Потребление памяти на VPS упало более чем вдвое, стало около 100М.

Если у Вас VPS на Xen или аналогичных, то у Вас нет граблей, с которыми я тут боролся. Если на OpenVZ (Virtuozzo) со товарищи — у Вас, скорее всего, на VPS эти же грабли.

В статье — почему и как это работает.

Как обеспечить более высокую производительность VPS сервера, который работает на Nginx + PHP + Mysql? В этой статье приведен чеклист основных настроек, которые позволят существенно оптимизировать работу сервера. Настройка займет не более 10 минут и не требует ничего, кроме редактирования конфигурационных файлов.

Примеры настроек приведены для операционной системы Debian 7 и VPS сервера с 1 процессором и 512Мб оперативной памяти.