Идеальный Nginx proxy + LetsEncrypt, GeoIP2

Такой инструмент как Front-end сервер уже давно зарекомендовал себя как эффективный способ решения сразу массы проблем. С помощью front-end серверов администраторы Linux скрывают реальные ip адреса приложений, балансируют нагрузку на backend, организуют почтовые releay и выполняют множество задач, которые довольно удобно решать с помощью front-end серверов с Nginx proxy на борту. В этой статье мы расскажем и предоставим подробный листинг команд для организации идеального Nginx proxy front-end (Perfect Nginx Proxy — PNP) сервера на базе Centos 7, который помимо своей прямой роли, будет предоставлять ещё и автоматическую выдачу SSL сертификатов LetsEncrypt. Кроме этого, мы обеспечим корректную работу GeoIP2, проброс на backend корректных заголовков и реальных ip адресов пользователей, если вы используете CloudFlare. Кстати, у нас есть отличная статья на тему Read more…

Как настроить лимит отправки почты в Postfix

Во время почтовых рассылок иногда можно столкнуться с ситуацией, когда почтовые сервисы начнут накладывать санкции на ваши отправки. Это могут быть как временные лимиты, так и более серьёзные ограничения до 72 часов. В частности, при массовой рассылке на почтовые ящики вида @yahoo.com, @yahoo.de и так далее — чаще всего мы сможете встретить в mail логах сообщения вида: host mx-aol.mail.gm0.yahoodns.net[67.195.228.86] said: 421 4.7.0 [TSS04] Messages from x.x.x.x temporarily deferred due to user complaints — 4.16.55.1; see https://help.yahoo.com/kb/postmaster/SLN3434.html (in reply to MAIL FROM command) Так же отправки будут сопровождаться сообщения о том что соединение было потеряно: delivery temporarily suspended: lost connection with mta7.am0.yahoodns.net[67.195.204.77] while sending RCPT TO Всё это говорит нам о том, что Yahoo решил немного охладить нам postfix. По информации Read more…

Как очистить дисковое пространство, если после удаления файла место на диске не освободилось — интерактивный bash скрипт

1) Посмотреть список всех удаленных файлов с открытыми файловыми дескрипторами можно командой lsof | grep deleted В выводе мы получим записи вида nginx 4403 4430 nginx 29w REG 8,1 5779197 165960 /tmp/access.log (deleted) Восьмая колонка в восьмой колонке мы можем увидеть размер файла в байтах, но нас интересует расположение файлового дескриптора, чтобы первая часть пути к нему это вторая колонка вывода, в данном случаи 4403 2) Найдем полный путь до дескриптора Выполним команду ниже подставив 4403 после /proc/ и имя файла в паттерн grep ls -l /proc/4403/fd | grep «/tmp/access.log» Вывод команды должен выглядеть примерно так: l-wx—— 1 nginx nginx 64 Oct 30 15:21 29 -> /tmp/access.log (deleted) Тут мы видим вторую часть пути это 9ая колонка, цифра 29 В Read more…

Как установить Sentry на Centos 7

В данном мануале мы расскажем как установить Sentry на ОС Centos 7, причем сделать это быстро, правильно и надежно. Кроме того мы подготовим конфигурацию для Supervisor, с помощью которого будем управлять основными службами Sentry. Итак, прежде всего установим все необходимые зависимости: yum install epel-release -y yum install wget python-setuptools.noarch python2-pip.noarch python-devel.x86_64 libxslt.x86_64 libxslt-devel.x86_64 libxml2 libxml2-devel.x86_64 libzip libzip-devel libffi.x86_64 libffi-devel.x86_64 openssl-libs.x86_64 libpqxx libpqxx-devel libyaml libyaml-devel libjpeg libjpeg-devel libpng libpng12 libpng12-devel libpng-devel net-tools gcc gcc-c++ libxml2-devel xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-devel -y Sentry использует PostgreSQL в качестве базы данных, поэтому установим пакет postgresql с помощью команды: yum install postgresql-server.x86_64 postgresql-contrib -y postgresql-setup initdb systemctl enable postgresql.service systemctl start postgresql.service Так же для работы Senry необходим Redis, поэтому так же установим и его с помощью Read more…

Установка и настройка прокси Squid в один клик

Прокси и VPN на текущей стадии развития интернета стали необходимым инструментом для практически каждого пользователя. Повышение безопасности, обход блокировок и ограничений веб-сайтов — это одни из основных плюсов использования прокси-сервисов. Кто-то предпочитает покупать готовые решения, а кто-то реализует собственные благодаря широкому разнообразию opensource продуктов. Одним из таких продуктов является прокси-сервер под названием Squid: Squid (англ.squid — «кальмар») — программный пакет, реализующий функцию кэширующегопрокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS. Разработан сообществом как программа с открытым исходным кодом Не смотря на широкий функционал и массу настроек — одним из его плюсов остаётся простота настройки и установки. Мы подготовили скрипт, который позволит даже новичку установить Squid на VPS сервер и максимально быстро начать работу. Кстати, VPS сервер который отлично подойдёт под Squid — вы можете заказать Read more…

Восстановление поврежденной базы данных MySQL InnoDB из файлов на Centos 7

1) Устанавливаем необходимый софт cd /root/ wget https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-utilities-1.6.5-1.el7.noarch.rpm wget https://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python-2.1.7-1.el7.x86_64.rpm yum install mysql-utilities-1.6.5-1.el7.noarch.rpm mysql-connector-python-2.1.7-1.el7.x86_64.rpm 2) Копируем всю директорию mysql, убедитесь что Вы имеете достаточное количество свободного дискового пространства mkdir /root/corrupt_mysql cp -r /var/lib/mysql /root/corrupt_mysql/ 3) Запускаем mysql systemctl start mysql Если БД не запускается то постепенно повышаем параметр innodb_force_recovery от 2 и выше в /etc/my.cnf Проставляем грант mysql -e’grant all on . to frm@localhost identified by «MysqlFRMSecret678»;’ 4) Указываем имя поврежденной БД и восстанавливаем схему DATABASE=brokendbname for file in $(ls /root/corrupt_mysql/mysql/${DATABASE}/*.frm); do mysqlfrm —server=frm:MysqlFRMSecret678@localhost:/var/lib/mysql/mysql.sock —diagnostic $file | grep -v «WARNING» >> /root/corrupt_mysql/${DATABASE}_create.sql ; done sed -i ‘s##utf8#g’ /root/corrupt_mysql/${DATABASE}_create.sql 5) Удаляем поврежденную базу данных mysql -e’drop database ${DATABASE};’ rm -rf /var/lib/mysql/${DATABASE}/ 6) Комментируем в конфиге innodb_force_recovery и перезапускаем mysql systemctl restart Read more…

Как настроить бекап баз данных MySQL быстро и надёжно

Mydumper подходит для резервного копирования как больших БД, так и очень маленьких. Главной особенностью этой утилиты является то, что она выполняет резервное копирование параллельно в нескольких потоках, что в несколько раз быстрее и эффективнее, чем стандартные инструменты, такие как mysqldump.

Как установить последнюю (новую) версию haproxy на centos 7

1) Определение и скачивание новой версии haproxy Просмотреть все актуальные версии haproxy можно на странице: http://www.haproxy.org/download/2.0/src/ Мы просто воспользуемся командой ниже и для удобства запишем в переменную крайнюю версию LAST_HAPROXY=$(wget -qO- http://www.haproxy.org/download/2.0/src/ | egrep -o «haproxy-2.[0-9]+.[0-9]+» | head -1) Скачиваем и распаковываем архив с исходниками haproxy cd /usr/src/ wget http://www.haproxy.org/download/2.0/src/${LAST_HAPROXY}.tar.gz tar xzvf ${LAST_HAPROXY}.tar.gz 2) Подготовка окружения и установка Установка необходимых пакетов для сборки haproxy yum install gcc-c++ openssl-devel pcre-static pcre-devel systemd-devel -y Сборка и установка haproxy cd /usr/src/${LAST_HAPROXY} make TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_CRYPT_H=1 USE_LIBCRYPT=1 USE_SYSTEMD=1 mkdir /etc/haproxy make install Создание systemd службы cat > /usr/lib/systemd/system/haproxy.service << ‘EOL’ [Unit] Description=HAProxy Load Balancer After=syslog.target network.target [Service] Environment=»CONFIG=/etc/haproxy/haproxy.cfg» «PIDFILE=/run/haproxy.pid» ExecStartPre=/usr/local/sbin/haproxy -f $CONFIG -c -q ExecStart=/usr/local/sbin/haproxy -Ws -f $CONFIG -p $PIDFILE ExecReload=/usr/local/sbin/haproxy -f Read more…

Как получить wildcard SSL сертификат с letsencrypt и cloudflare на Centos 7

Как известно cloudflare не предоставляет wildcard проксирования а соответственно и wildcard сертификатов на бесплатном тарифе. Рассмотрим получение SSL сертификата для домена и всех поддоменов через DNS валидацию на примере cloudflare как одного из самых популярных DNS сервисов 1) Установка certbot последней версии Сначала устанавливаем git и python 3 yum install epel-release -y yum install git python3 python3-pip -y Клонируем и устанавливаем актуальную верссию certbot cd /usr/src/ git clone https://github.com/certbot/certbot cd certbot/ python3 setup.py install 2) Устанавливаем плагин dns cloudflare pip3 install certbot-dns-cloudflare Проверяем что плагин установлен корректно /usr/local/bin/certbot plugins Мы должны получить вывод вида dns-cloudflare … standalone … webroot … 3) Получаем api key для нашего CloudFlare аккаунта в панели и записываем в файл My profile — Api tokens — Read more…

Как установить квоты файловой системы в Debian 10

Вступление Квоты используются для ограничения объема дискового пространства, которое пользователь или группа могут использовать в файловой системе.  В этом мануале мы установим инструменты командной строки для создания и проверки дисковых квот Шаг 1 — Установка утилит для работы с квотами. Чтобы сконфигурировать и проверить квоты, нам сначала нужно установить инструменты командной строки, используя apt. Давайте обновим наш список пакетов, затем установим пакет: Вы можете проверить, установлены ли инструменты, запустив командуquotaи запросив информацию о ее версии: Не страшно, если ваш вывод показывает немного другой номер версии. Далее мы обновим параметры нашей файловой системы, mountчтобы включить квоты в нашей корневой файловой системе. Шаг 2 — Обновление параметров монтирования файловой системы Чтобы активировать квоты в определенной файловой системе, нам нужно смонтировать ее с указанием нескольких параметров, связанных с квотами. Мы Read more…