Запускаем docker consul кластер между физическими серверами

Posted in Новости on 14 апреля, 2016 by admin

Серверы :

node1 - master - external ip : 1.1.1.1
node2 - slave - external ip : 2.2.2.2
node3 - slave - external ip : 3.3.3.3

Стартуем master :

docker run -d -v /mnt:/data \
--name consul \
-p 8300:8300 \
-p 8301:8301 \
-p 8301:8301/udp \
-p 8302:8302 \
-p 8302:8302/udp \
-p 8400:8400 \
-p 8500:8500 \
-p 53:53/udp \
progrium/consul -server -advertise=1.1.1.1 -bootstrap-expect 3

Стартуем первый slave :

docker run -d -v /mnt:/data \
--name consul \
-p 8300:8300 \
-p 8301:8301 \
-p 8301:8301/udp \
-p 8302:8302 \
-p 8302:8302/udp \
-p 8400:8400 \
-p 8500:8500 \
progrium/consul -server -advertise=2.2.2.2 -join 1.1.1.1

Стартуем второй slave :

docker run -d -v /mnt:/data \
--name consul \
-p 8300:8300 \
-p 8301:8301 \
-p 8301:8301/udp \
-p 8302:8302 \
-p 8302:8302/udp \
-p 8400:8400 \
-p 8500:8500 \
progrium/consul -server -advertise=3.3.3.3 -join 1.1.1.1

Tags: , , , ,

nginx и бесплатные сертификаты от let's encrypt

Posted in Новости on 29 января, 2016 by admin

1. Ставим само ПО letsencrypt :

cd /usr/src
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto

В процессе установки попросят ввести ящик. Он потребуется для продления сертификата или при утере данных
2. Генерируем сертификаты для работы :

cd /usr/src
service nginx stop
./letsencrypt-auto certonly --standalone
service nginx start

В процессе генерации ключей нас попросят ввести список доменов, если нам нужно разместить более одного домена второго уровня, тогда нужно будет запустить еще раз утилиту, так как для всего списка создается один сертификат. Перед генерацией сертификата нужно останавливать вебсервер.
3. Создаем минимальный конфиг nginx для ssl :

server {
listen my.ip.ad.dre.ss:443 ssl;
server_name example.com www.example.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
set $root /var/www/example.com/;
ssl on;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
root $root;
}
}

сертификат fullchain.pem уже включает и сертификат домена и цепочку сертификатов.

Tags: , , , ,

Начальная оптимизация php5-fpm

Posted in Новости on 29 января, 2016 by admin

Итак, имеем сервер 4 ядра , 8Gb RAM . На сервере стоит MySQL , php5-fpm, nginx.
Сначала рассчитываем, сколько мы можем выделить памяти для php5-fpm . Возьмем половину реальной — 4Gb.
Далее, узнаем, сколько памяти в среднем «ест» один процесс php5-fpm , в этом нам поможет конвеер отсюда
root@XXX:/# pidof php5-fpm | xargs pmap -d | grep '^mapped' | awk '{print $4}' | sed 's/K//' | perl -e 'do { $a+=$_; $b++ } for <>;print $a/1024, " mb\n", $a/1024/$b, " mb\n"'
197.484375 mb
24.685546875 mb

Округлим до 30Мб
Вводные : 4 ядра , 4Гб RAM , ~30Мб на процесс.

pm.max_children = Количество памяти под fpm / Память одного процесса
pm.min_spare_servers = Количество ядер * 2
pm.max_spare_servers = Количество ядер * 4
pm.start_servers = ( pm.min_spare_servers + pm.max_spare_servers) / 2

Итого :

pm.max_children = 136
pm.min_spare_servers = 8
pm.max_spare_servers = 16
pm.start_servers = 12

Tags: , , , ,

Расшариваем интернет за NAT в Linux

Posted in Новости on 7 октября, 2015 by admin

1. Разрешаем форвардинг пакетов :

sysctl -w net.ipv4.ip_forward=1

2. Добавляем построут для пакетов :

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # eth0 - интерфейс интернета

Tags: , , ,

verify_reply couldn't decrypt with error: error decoding block for decryption

Posted in Новости on 6 октября, 2015 by admin

Ошибка пиринга возникает при жестком рассинхроне времени ( не зависит от часовой зоны ). Итак :

1. apt-get install ntpdate ( yum install ntpdate )
2. ntpdate ntp.remco.org

Tags: , , ,