Очень краткая заметка с примером как можно ограничить скорость обработки запросов от IP адресов, но исключив при этом роботов с определённым "юзер агентом".

# ref: https://gist.github.com/supairish/2951524

# IP адреса в белом списке - для них не будет применяться лимитирование
geo $geo_whitelist {
  default 0;
  1.2.3.4 1;
  2.3.4.5/24 1;
}

# Юзер агенты в белом списке - для них не будет применяться лимитирование
map $http_user_agent $whitelist {
  default $geo_whitelist;
  ~*(google) 1;
}

# Если в белом списке 0, то помещаем "binary IP address" в $limit для применения к ним ограничений
map $whitelist $limit {
  0 $binary_remote_addr;
  1 "";
}

limit_req_zone $limit zone=perip:30m rate=1r/s;​
begin routers
...
autoreplay:
driver = accept
require_files = /etc/exim/autoreply/$domain/autoreply.${local_part}.msg
condition = ${if exists{/etc/exim/autoreply/$domain/autoreply.${local_part}.msg}{yes}{no}}
retry_use_local_part
transport = userautoreply
unseen

begin transports
...
userautoreply:
driver = autoreply
file = /etc/exim/autoreply/$domain/autoreply.${local_part}.msg
from = "${local_part}@${domain}"
subject = "${if def:h_Subject: {Autoreply: \"${rfc2047:$h_Subject:}\"} {Autoreply Message}}"
headers = Content-Type: text/plain; charset=utf-8;\nContent-Transfer-Encoding: 8bit
to = "${sender_address}"
[mysqld]
skip-external-locking
bind-address = 127.0.0.1
skip-name-resolve = 1
sql_mode                = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
query_cache_size = 0
query_cache_type = 0
Файрволл в cpanel представлен сервисом csf, иногда приходится его останавливать из-за слишком "удачной" настройки клиентами.
После не забыть iptables -F

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

“php: symbol lookup error: /usr/local/lib/php/extensions/no-debug-non-zts-20131226/memcache.so: undefined symbol: mmc_queue_pop”

Чтобы исправить эту проблему, вам нужно передать опцию «fgnu89-inline» компилятору с переменной среды CFLAGS при установке пакета через pecl. Эта опция указывает компилятору C использовать традиционную семантику GNU для встроенных функций. (Пожалуйста, проверьте раздел «Ссылки», чтобы получить более подробную информацию и другие параметры компилятора.)

В этой заметке вы сможете узнать о том что dovecot поддерживает ip-based, domain-based конфигурации для SSL.


local 10.10.10.11 {
       ssl_cert = </home/domain0/ssl.cert
       ssl_key = </home/domain0/ssl.key
}

local 10.10.10.12 {
       ssl_cert = </home/domain1/ssl.cert
       ssl_key = </home/domain2/ssl.key
}​

При этом необходимо убрать из конфигурации SSL сертификаты, которые вне этих секций.

Так же можно указывать SSL сертификаты для доменов:

local_name mail.domain0.com {
  ssl_cert = </home/domain0/ssl.cert
  ssl_key = </home/domain0/ssl.key
}

local_name mail.domain1.com {
  ssl_cert = </home/domain1/ssl.cert
  ssl_key = </home/domain1/ssl.key
}

Больше можно почитать по ссылке под статьёй.