Сервер 1С:Предприятие на Ubuntu 16.04 и PostgreSQL 9.6, для тех, кто хочет узнать его вкус. Рецепт от Капитана
Если кратко описать мое отношение к Postgres: Использовал до того, как это стало мейнстримом.
Конкретнее: Собирал на нем сервера для компаний среднего размера (до 50 активных пользователей 1С).
На настоящий момент их набирается уже больше, чем пальцев рук пары человек (нормальных, а не фрезеровщиков).
Следуя этой статье вы сможете себе собрать такой же и начать спокойную легальную жизнь, максимально легко сделать первый шаг в мир Linux и Postgres.
А я побороться за 1. Лучший бизнес-кейс (лучший опыт автоматизации предприятия на базе PostgreSQL).
Если, конечно, статья придется вам по вкусу.
Настройка сервера
После установки сервер можно не настраивать — не будет работать с настройками по умолчанию. В данном разделе рассмотрим примеры некоторых настроек, которые могут показаться интересными.
1. Пароль для подключения
Чтобы ограничить подключения к нашему серверу, мы можем задать парольную фразу. Для этого открываем файл с настройками сервера:
vi /etc/coturn/turnserver.conf
И снимаем комментарии со строк:
use-auth-secret
…
static-auth-secret=north
… а также меняем north на любой пароль:
static-auth-secret=Str0ngPa$$word
Перезапускаем сервис:
systemctl restart coturn
2. Сервер за NAT (external-ip)
Если наш сервер сам находится за NAT, необходимо настроить значение для опции external-ip, которое укажет, какой адрес нужно использовать в качестве ретранслятора.
Открываем конфигурационный файл:
vi /etc/coturn/turnserver.conf
а) если используется единственный внешний адрес, указываем его:
external-ip=60.70.80.91
б) если у нас множество адресов, запись может быть такой:
external-ip=60.70.80.91/172.17.19.101
external-ip=60.70.80.92/172.17.19.102
* где 60.70.80.91 и 60.70.80.92 — публичные адреса; 172.17.19.101 и 172.17.19.102 — приватные.
Перезапускаем сервис:
systemctl restart coturn
3. Настройка SSL
Передача данных возможна с применением шифрования. Для этого, во-первых, нам нужно получить сертификат; во-вторых — настроить сервер STUN.
Сертификат можно купить или получить бесплатно в Let’s Encrypt. В данной инструкции будет использоваться купленный сертификат. Предположим, что его мы сохранили в файлах /etc/pki/coturn/public/cert.pem и /etc/pki/coturn/private/cert.key.
Теперь открываем конфигурационный файл сервера:
vi /etc/coturn/turnserver.conf
Снимаем комментарии и правим значения для опций:
cert=/etc/pki/coturn/public/cert.pem
…
pkey=/etc/pki/coturn/private/cert.key
Перезапускаем сервис:
systemctl restart coturn
4. Только STUN или TURN
По умолчанию, coturn запускается и работает в режиме STUN/TURN. Если нужно, чтобы работал только один из них, открываем настройки:
vi /etc/coturn/turnserver.conf
а) если нужен только STUN:
stun-only
б) если нужен только TURN:
no-stun
Перезапускаем сервис:
systemctl restart coturn
Увеличиваем лимиты процессов и открытых файлов в CentOS
По умолчанию в CentOS стоит весьма низкие лимиты на количество одновременно открытых файлов и запущенных процессов. Если вы используете сервер только для разработки или тестирования, то вряд ли это доставит вам проблем. Но если у вас крутиться на сервере реальный проект (или несколько), то даже при небольшой посещаемости вы можете получить, например, от MySQL такую ошибку:
OS error code 24: Too many open files
1 | OS error code24Too many open files |
Проверяем, что у нас: процессы на пользователя
# ulimit -u 4096
1 2 |
# ulimit -u 4096 |
количество одновременно открытых файлов
# ulimit -n 1024
1 2 |
# ulimit -n 1024 |
Если с процессами более менее, то с кол-вом файлов все плохо. Исправляем:
# nano /etc/security/limits.conf
1 | # nano /etc/security/limits.conf |
Добавляем в конец файла строки:
* — nofile 8192 # меняем лимит на файлы * — nproc 8192 # на процессы # End of file
1 2 3 4 |
*-nofile8192# меняем лимит на файлы *-nproc8192# на процессы |
Так как мы переопределили лимиты для всех пользователей, то сервер придется перезагрузить. После перезагрузки проверяем:
#ulimit -n -u open files (-n) 8192 max user processes (-u) 8192
1 2 3 |
#ulimit -n -u open files(-n)8192 max user processes(-u)8192 |
Хочу отдельно отметить, что увеличение лимитов для всех пользователей не совсем корректно. Лучше переопределять лимиты под конкретные задачи. Например, если действительно возникаем проблема с MySQL, то меняем значения для того пользователя, под которым запускаются процессы (обычно mysql).
mysql — nofile 8192 # меняем лимит на файлы mysql — nproc 8192 # на процессы # End of file
1 2 3 4 |
mysql-nofile8192# меняем лимит на файлы mysql-nproc8192# на процессы |
Но давайте пока оставим все как есть.
На этом пока все, в следующей статье будем уже непосредственно настраивать среду веб-сервера.
Настройка аутентификации с помощью открытого ключа SSH в CentOS 7
Чтобы защитить SSH-сервер и настроить аутентификацию с открытым ключом, чтобы повысить безопасность вашего сервера с помощью закрытого ключа SSH для входа в систему, сначала сгенерируйте пару ключей SSH с помощью следующей команды.
Кстати, помимо указанных настроек, после установки сервера, Вы можете проводить мониторинг сайта и проверки uptime через специальный сервис https://www.host-tracker.com/.
Не вводите ключевую фразу, если вы хотите автоматизировать управление сервером через SSH.
После генерации пар ключей SSH скопируйте ключ на сервер, к которому вы хотите подключиться, введя команду ниже. Первоначально введите удаленный пароль пользователя SSH, чтобы скопировать открытый ключ.
После того, как открытый ключ SSH был скопирован на удаленный сервер, войдите в систему на удаленном сервере SSH с помощью следующей команды.
Наконец, чтобы защитить сервер SSH, убедитесь, что вы запрещаете удаленный доступ SSH к учетной записи root, открыв файл конфигурации SSH / etc / ssh / sshd_config с вашим текстовым редактором в качестве пользователя root и изменив его с Да на Нет.
Чтобы применить настройку, необходимо перезапустить службу SSH, чтобы она использовала новую конфигурацию.
Управление процессами и потоками, отправка сигналов, kill
Процесс (process) — некая виртуальная среда, инкапсулирующая в себе ресурсы (открытые файлы, файлы отображенные в память…) и их дескрипторы, потоки и т.д. Каждый процесс имеет как минимум один поток. Также каждый процесс имеет свое собственное виртуальное адресное пространство и контекст выполнения, а потоки одного процесса разделяют адресное пространство процесса. Некоторые приложения могут создавать несколько процессов одновременно.
Каждому процессу в системе назначаются числовые идентификаторы PID (Process Identifier) в диапазоне от 1 до 65535 и идентификаторы родительского процесса PPID (Parent Process Identifier).
Сигнал в операционных системах семейства Unix — асинхронное уведомление процесса о каком-либо событии.
Когда сигнал послан процессу, операционная система прерывает выполнение процесса, при этом, если процесс установил собственный обработчик сигнала, операционная система запускает этот обработчик, передав ему информацию о сигнале, если процесс не установил обработчик, то выполняется обработчик по умолчанию.
По умолчанию отправляется сигнал SIGTERM. Для безусловного завершения процесса можно отправить SIGKILL. Т.к. в большинстве систем SIGKILL имеет идентификатор 9, часто встречается команда в сокращенной форме записи:
Создание пользователей
Создадим пользователя. Для этого рассмотрим пример использования командной строки и веб-интерфейса.
Командная строка
Авторизуемся на FreeIPA:
kinit admin
Создаем нового пользователя командой:
ipa user-add dmosk —first=Дмитрий —last=Моск —password
* где dmosk — логин; first — имя пользователя; last — фамилия; password — ключ для запроса пароля.
… после ввода команды система запросит пароль для создаваемого пользователя — вводим его дважды.
Мы должны увидеть сводку по параметрам для созданного пользователя:
Добавлен пользователь «dmosk»
——————————
Логин пользователя: dmosk
Имя: Дмитрий
Фамилия: Моск
Полное имя: Дмитрий Моск
Отображаемое имя: Дмитрий Моск
Инициалы: ДМ
Домашний каталог: /home/dmosk
GECOS: Дмитрий Моск
Оболочка входа: /bin/sh
Principal name: dmosk@DMOSK.LOCAL
Principal alias: dmosk@DMOSK.LOCAL
User password expiration: 20190725205853Z
Электронный адрес: dmosk@dmosk.local
UID: 1798800001
ID группы: 1798800001
Пароль: True
Member of groups: ipausers
Kerberos ключей доступно: True
Примет более полной команды для создания пользователя:
* в данном примере мы использовали дополнительные поля:
- cn — полное имя.
- displayname — отображаемое имя.
- email — адрес электронной почты.
* более полный список атрибутов можно найти на странице с мануалом Fedora Project.
Веб-интерфейс
Открываем браузер и переходим по адресу имени сервера — в нашем примере, https://ipa-server.dmosk.local. Закрываем всплывающее окно с запросом пароля. В появившейся странице авторизации вводим логин admin и его пароль.
Откроется страница управления пользователями:
На панели справа (над списком пользователей) кликаем по Добавить:
В открывшемся окне заполняем поля для создания пользователя и нажимаем по Добавить:
Проверка
На компьютере с клиентом вводим команду для проверки:
kinit dmosk
… и вводим пароль от созданной учетной записи:
Password for dmosk@DMOSK.LOCAL:
При вервом входе система попросит поменять пароль на новый:
Password expired. You must change it now.
Enter new password:
Enter it again:
CentOS vs Ubuntu: использование ноутбука
Хотя основной целью этой статьи является проверка CentOS и Ubuntu на предмет использования серверов, обе они также являются настольными операционными системами. Если вы часто используете один из них на сервере или серверах, возможно, вам будет удобнее использовать его и на ноутбуке.
Здесь вы увидите более драматические различия между ними. CentOS 7 использует ядро Linux 3.10, а Ubuntu 18.04 использует ядро Linux 4.18, не говоря уже за Ubuntu 19.04, с ядром пятой версии. Более новое ядро обеспечивает поддержку более нового оборудования.
Если вы используете относительно новый ноутбук, вы можете обнаружить, что CentOS не распознает определенное оборудование. В некоторых случаях вы можете найти и установить драйверы для этого оборудования самостоятельно, но это может быть сложно. Ubuntu будет гораздо лучше поддерживать новые ноутбуки и оборудование в целом.
С другой стороны, если вы устанавливаете его на ThinkPad, которому несколько лет, CentOS может работать отлично. Скорее всего, если он поначалу будет работать хорошо, он продолжит работать даже после обновлений. Это одна из областей, где стабильность CentOS особенно полезна.
Победитель: Ubuntu побеждает в этой категории благодаря большому количеству поддерживаемого оборудования.
1С:Предприятие Бухгалтерия переход с редакции 2.0 на 3.0. Практика перевода информационной базы для работы в управляемом приложении. Промо
Из информационного выпуска 1С № 16872 от 08.07.2013г. стало известно об относительно скором необходимом переходе на редакцию 1С:Бухгалтерия 3.0. В данной публикации будут разобраны некоторые особенности перевода нетиповой конфигурации 1С:Бухгалтерия 2.0 на редакцию 3.0, которая работает в режиме «Управляемое приложение».
Публикация будет дополняться по мере подготовки нового материала. Публикация не является «универсальной инструкцией».
Update 3. Права доступа. 14.08.2013
Update 4. Добавлен раздел 0. Дополнен раздел 4. Добавлен раздел 7. Внесены поправки, актуализирована информация. 23.11.2013.
1 стартмани
Какой серверный дистрибутив подходит именно вам?
Если после прочтения сравнений вы все еще не можете сделать выбор, подумайте, какой дистрибутив вам удобнее. Вы будете часто использовать этот дистрибутив, поэтому, если дело доходит до броска монеты, используйте тот, который вы использовали больше. Это знакомство значительно облегчит повседневные задачи по обслуживанию.
Что если у вас нет большого опыта работы с CentOS или Ubuntu? Ubuntu – отличный выбор для менее опытных или начинающих пользователей Linux.
Скачать CentOS: https://www.centos.org/download/
Скачать Ubuntu: https://www.ubuntu.com/download
Рекомендуемый контент
Шаг 2. Создание образа для двух контейнеризованных веб-служб IIS
На этом этапе мы создадим образ контейнеров для двух простых веб-приложений на базе IIS. Позже мы будем использовать эти изображения для создания двух служб докеров.
Примечание. Выполните инструкции в этом разделе на одном из узлов контейнера, которые вы намереваетесь использовать в качестве swarm.
Построение общего образа веб-сервера IIS
На моем личном репо GitHub я сделал простой файл Dockerfile, который можно использовать для создания образа веб-сервера IIS. Dockerfile просто включает роль веб-сервера IIS в контейнере microsoft/windowsservercore. Загрузите файл Dockerfile отсюда и сохраните его в каком-либо месте (например, C:\temp\iis) на одной из хост-машин, которые вы планируете использовать в качестве узла swarm. С этого места создайте образ, используя следующую команду:
C:\temp\iis> docker build -t iis-web.
1 | C\temp\iis>docker build-tiis-web. |
(Необязательно) Убедитесь, что готов образ веб-сервера IIS
Сначала запустите контейнер:
C:\temp> docker run -it -p 80:80 iis-web
1 | C\temp>docker run-it-p8080iis-web |
Затем используйте команду docker, чтобы убедиться, что контейнер работает. Запишите его идентификатор. Идентификатором вашего контейнера является значение В следующей команде.
Получить IP-адрес контейнера:
C:\temp>docker exec <code></code> ipconfig
1 | C\temp>docker exec<code></code>ipconfig |
Теперь откройте браузер на своем контейнере и введите IP-адрес вашего контейнера в адресную строку. Должна появиться страница подтверждения, указывающая на успешное выполнение роли веб-сервера IIS в контейнере.
Сборка двух пользовательских образов веб-сервера IIS
На этом этапе мы заменим страницу проверки IIS, которую мы видели выше, с пользовательскими HTML-страницами — двумя разными образами, соответствующими двум различным образам веб-контейнера. На более позднем этапе мы будем использовать наш контейнер NGINX для балансировки нагрузки между экземплярами этих двух образов. Поскольку образы будут отличаться, мы легко увидим балансировку нагрузки в действии, поскольку она переключает между содержимым, которое обслуживается контейнерами, которые мы определим на этом этапе.
Сначала создайте на хост-компьютере простой файл с именем index_1.html. В файла любой текст. Например, файл index_1.html может выглядеть так:
Теперь создайте второй файл index_2.html. Опять же, в файла любой текст. Например, файл index_2.html может выглядеть так:
Теперь мы будем использовать эти HTML документы для создания двух пользовательских образов веб-сервисов.
Если созданный экземпляр контейнера iis-web еще не запущен, запустите новый, затем получите идентификатор контейнера, используя:
C:\temp> docker exec ipconfig
1 | C\temp>docker exec ipconfig |
Теперь скопируйте файл index_1.html со своего хоста на экземпляр контейнера IIS, который запущен, используя следующую команду:
C:\temp> docker cp index_1.html : C:\inetpub\wwwroot\index.html
1 | C\temp>docker cp index_1.htmlC\inetpub\wwwroot\index.html |
Затем остановите и зафиксируйте контейнер в его текущем состоянии. Это создаст образ контейнера для первой веб-службы. Давайте назовем это первый образ, «web_1».
C:\> docker stop
C:\> docker commit web_1
1 |
C\>docker stop C\>docker commit web_1 |
Теперь запустите контейнер снова и повторите предыдущие шаги, чтобы создать второй образ веб-службы, на этот раз используя файл index_2.html. Сделайте это, используя следующие команды:
C:\> docker start
C:\> docker cp index_2.html :C:\inetpub\wwwroot\index.html
C:\> docker stop
C:\> docker commit web_2
1 |
C\>docker start C\>docker cp index_2.htmlC\inetpub\wwwroot\index.html C\>docker stop C\>docker commit web_2 |
Теперь вы создали образы для двух уникальных веб-сервисов; Если вы просматриваете образ Докера на вашем хосте, запустив , вы должны увидеть, что у вас есть два новых образа контейнера — «web_1» и «web_2».
Поместите образ контейнера IIS на все ваши хосты swarm
Для выполнения этого вам понадобятся пользовательские образы веб-контейнера, которые вы только что создали, на всех хост-машинах, которые вы намереваетесь использовать в качестве узлов swarm. У вас есть два способа получить образ на дополнительные машины:
Вариант 1. Повторите описанные выше шаги, чтобы создать контейнеры «web_1» и «web_2» на втором узле.Вариант 2 : вставьте образ в ваш репозиторий в Docker Hub, затем подтяните их на дополнительные хосты.
Устанавливаем MySQL/MariaDB на CentOS 7.1
В операционной системе CentOS 7.1 в качестве сервера баз данных используется не сама СУБД MySQL, а ее ответвление MariaDB. Эти базы полностью совместимы, только MariaDB разрабатывается и поддерживается сообществом (как Вы знаете, MySQL поддерживает компания Oracle) и является полностью бесплатной.
Для установки MariaDB пишем следующую команду
yum -y install mariadb-server mariadb
Запускаем
systemctl start mariadb
Помещаем в автозагрузку
systemctl enable mariadb
Задаем пароль для root пользователя
mysqladmin -u root password 'Придуманный_пароль'
Запускаем скрипт безопасной установки — это нужно, для того чтобы удалить опасные настройки по умолчанию, например анонимных пользователей
mysql_secure_installation
Сначала Вас спросят пароль root пользователя, а затем если Вы, конечно, захотите установить новый пароль для root, но мы его и так только что задали. На все остальные вопросы отвечаем y (т.е. да)
Проверяем работу MariaDB
Чтобы проверить работу MariaDB исправим немного наш тестовый скрипт (test.php). Пишем следующий код PHP.
<?php ini_set('display_errors', 1); //Включаем вывод ошибок на страницу $dbServer = "127.0.0.1"; //Адрес сервера БД $dbname = "mysql"; //База данных (тестовая по умолчанию) $dbuser = "root"; //Имя пользователя БД $dbpass = "12345"; //Пароль пользователя БД //Подключаемся к серверу $dbconn = @mysql_connect($dbServer, $dbuser, $dbpass); //Проверка доступности сервера if (!$dbconn){ echo "<p>Сервер баз данных недоступен</p>"; exit(); } //Проверка доступности базы данных if (!@mysql_select_db($dbname,$dbconn)){ echo "<p>База данных недоступна</p>"; exit(); } //Простой запрос, узнаем версию MariaDB $VERSION = mysql_query("SELECT VERSION()"); if(!$VERSION){ echo "<p>Ошибка в запросе</p>"; exit(); } echo mysql_result($VERSION, 0); ?>
Также в браузере вызываем test.php и если все хорошо, то в ответ мы получим версию MariaDB, в моем случае это 5.5.41-MariaDB.
Вот мы с Вами и настроили полноценный WEB-сервер, надеюсь, данный материал был Вам полезен, удачи!
Нравится3Не нравится
5. Стабильность
Ubuntu, в версиях LTS позиционирует себя как очень стабильный дистрибутив, но про стабильность Ubuntu можно очень много спорить. Возможно, она работает отлично с настройками по умолчанию, но если попытаться использовать какие-нибудь нестандартные функции или их комбинации, сразу всплывают куча багов и недоработок, которые никто не спешит исправлять.
С другой стороны, CentOS, которая основана на Red Hat тщательно тестируется перед тем, как выйти в свет, хотя и дистрибутив содержит более старое программное обеспечение, но оно точно хорошо отлажено, а ошибки исправлены, хотя из этого правила тоже бывают исключения.
Если вы хотите новые версии программ — ваш выбор Ubuntu, но если нужна стабильность, лучше посмотреть в сторону другого дистрибутива, когда будете решить Ubuntu или CentOS.
Возможные ошибки
Например:
Причина: в системе не установлен один из пакетов, содержащий необходимые библиотеки.
Решение: необходимо воспользоваться поисковиком, чтобы определить, какой именно пакет необходим для продолжения установки и воспользоваться командой yum install <имя пакета> для его установки.
2. Ошибка 127
Например: [include/generated/timeconst.h] Ошибка 127
Причина: как и с предыдущей ошибкой, в системе не установлен один из пакетов, содержащий необходимые библиотеки.
Решение: аналогично предыдущему примеру решения проблемы, необходимо воспользоваться поисковиком, чтобы определить, какой именно пакет необходим для продолжения установки и воспользоваться командой yum install <имя пакета> для его установки.
Включаем маршрутизацию, firewall и nat
Чтобы сервер мог маршрутизировать пакеты между сетевыми адаптерами, необходимо выполнить следующую настройку. Находим файл /etc/sysctl.conf и вставляем туда строку:
# mcedit /etc/sysctl.conf net.ipv4.ip_forward = 1
Чтобы заработала настройка, выполняем команду:
# sysctl -p
Теперь приступаем к самому главному — настройке фаерволла. Опять же отсылаю вас к своему материалу, где я очень подробно рассмотрел вопрос настройки iptables в CentOS 7. Там же приведен готовый скрипт для iptables. Так что выполняем все необходимые действия без пояснений.
Отключаем firewalld:
# systemctl stop firewalld # systemctl disable firewalld
Устанавливаем службы iptables:
# yum -y install iptables-services
Скачиваем скрипт с правилами iptables.sh. Данные правила включают NAT, закрывают доступ к серверу снаружи, разрешают пинги, разрешают всем пользователям локальной сети доступ в интернет. Дополнительный функционал отключен. В скрипте подробно описаны все правила. Вам необходимо только заменить в начале переменные на свои. В моем случае это будет выглядеть так:
# Внешний интерфейс export WAN=eth0 export WAN_IP=192.168.1.25 # Локальная сеть export LAN1=eth1 export LAN1_IP_RANGE=192.168.10.1/24
Помещаем отредактированный скрипт в /etc/iptables.sh и делаем его исполняемым:
# chmod 0740 /etc/iptables.sh
Запускаем iptables:
# systemctl start iptables.service
Добавляем их в автозагрузку:
# systemctl enable iptables.service
Выполняем скрипт с правилами:
# /etc/iptables.sh
Проверяем установленные правила:
# iptables -L -v -n
Если у вас то же самое, значит вы все сделали правильно.
По сути наш шлюз уже готов и может обслуживать клиентов. Но не работает одна важна служба, без которой нормальной работы с интернетом не получится. Нам нужно настроить кэширущий dns сервер для клиентов локальной сети. Можно пойти по простому и очень простому пути. Простой путь это выполнить простейшую настройку dns сервера bind. Как это сделать у меня опять же подробно написано отдельно — настройка Bind 9 в CentOS 7. Рекомендую ознакомиться, там рассмотрены интересные нюансы настройки.
Очень простой путь это установить dnsmasq, который помимо dns сервера включает в себя еще и dhcp сервер, который нам может пригодиться.
Что такое CentOS?
Если вы когда-либо даже читали о Linux, вероятно, вы немного знаете об Ubuntu. Это простой в использовании дистрибутив, основанный на Debian, и это одна из наиболее широко используемых версий Linux.
CentOS, с другой стороны, для большинства, скорее загадка. Этот дистрибутив основан на Red Hat Enterprise Linux, который является платным продуктом. CentOS находится в свободном доступе и с открытым исходным кодом, но использует он, наработки которые входят в Red Hat Enterprise Linux.
Вы не получаете ту же поддержку, которую получаете с предложением Red Hat, поскольку вы не платите за поддержку. Тем не менее, CentOS поддерживается сообществом, поэтому вы не одиноки, если столкнетесь с проблемой.
Принцип настройки
Конфигурирование HAProxy выполняется в файле /etc/haproxy/haproxy.cfg. Все основные настройки находятся в 4-х секциях:
- global. Глобальные настройки, распространяемые на все публикации.
- defaults. Настройки, применяемые по умолчанию, если они не указаны явно в публикации.
- frontend. Правила обработки запросов, приходящих на сервер и передачи этих запросов серверам backend. Может быть несколько.
- backend. Настройка конечных серверов, которые обрабатывают запросы и возвращают результаты. Может быть несколько.
Также есть возможность создать дополнительные секции, например userlist.
Настройка frontend
При настройке прослушивания внешних запросов, основное, что мы указываем:
- IP-адрес и порт прослушивания.
- Правила, по которым обрабатываются запросы.
- Группы серверов, на которые будет перекинут запрос.
Пример:
frontend balance_http
bind 192.168.0.15:80
acl url_stat path_end -i .css .js
use_backend static if url_stat
default_backend webserver
* в данном случае мы слушаем веб-запросы и если они идут на файлы с расширениями .css или .js, передаем запрос на бэкэнд с название static. Все остальные запросы передаем на бэкэнд webserver.* где balance_http — название фронтэнда; bind 192.168.0.15:80 — слушаем на адресе 192.168.0.15, порту 80; url_stat — название правила; use_backend static if url_stat — правило обработки, при котором запросы, попавшие под действие правила url_stat, должны быть обработаны бэкэндом static; default_backend — указывает, какой бэкэнд будет использоваться по умолчанию.
Настройка backend
При настройке указываем:
- Как распределяется нагрузка между серверами. Доступны варианты:
- roundrobin — серверы используются по очереди. Нагрузка распространяется равномерно, в зависимости от указанного веса. Вес может быть изменен на лету.
- static-rr — серверы используются по очереди. Нагрузка распространяется равномерно, в зависимости от указанного веса. Вес не может быть изменен на лету.
- lessconn — запросы идут к серверу с наименьшим количеством активных подключений.
- source — запросы от одного и того же IP-адреса идут на один и тот же сервер.
- uri — запросы с одним и тем же URL (до знака вопроса) будут переправляться на один и тот же сервер.
- url_param — запросы с одинаковыми параметрами GET (все, что после знака вопроса) будут переправляться на один и тот же сервер.
- На какие именно серверы передавать запросы.
Пример:
backend webserver
balance roundrobin
server server1 192.168.0.20:80 check
server server2 192.168.0.30:80 check
* где webserver — название бэкэнда; balance — опция определения алгоритма распределения запросов между серверами; server — указывает имя и IP-адрес сервера, на который передается запрос; check — указываем, что необходимо проверять состояние сервера.
* для работы достаточно и одного сервера, но несколько добавят отказоустойчивости.
После внесения изменений в настройку HAProxy, необходимо перезапустить сервис:
systemctl restart haproxy
или просто перечитать настройки:
systemctl reload haproxy
Брандмауэр
Для корректной работы сервера, не забываем открывать соответствующие порты. Например, для обработки http и https запросов вводим следующие команды:
firewall-cmd —permanent —add-port=80/tcp
firewall-cmd —permanent —add-port=443/tcp
firewall-cmd —reload
Подробнее про настройку брандмауэра в Linux при помощи firewalld и iptables.
Выбор редакции
Veeam Agent для Linux может работать в трех режимах:
- Server — режим, обеспечивающий доступ ко всем функциям продукта и предназначенный для выполнения задач защиты данных на серверах под управлением ОС Linux. Veeam Agent для Linux может работать в режиме сервера, если на защищенном компьютере установлена коммерческая лицензия, поддерживающая этот режим;
- Workstation — режим, который предлагает ограниченные возможности, достаточные для выполнения задач защиты данных на настольных компьютерах и ноутбуках, работающих под управлением ОС Linux. Veeam Agent для Linux может работать в режиме рабочей станции, если на защищенном компьютере установлена коммерческая лицензия, поддерживающая этот режим;
- Free — режим, который предлагает те же возможности, что и режим рабочей станции, но не поставляется с коммерческой программой поддержки. В отличие от режимов рабочей станции и сервера, свободный режим не требует лицензии.
Чтобы проверить, в каком режиме работает Veeam Agent для Linux, используйте командную строку. Дополнительные сведения в разделе Просмотр информации о лицензии.
По истечении срока действия лицензии Veeam Agent for Linux автоматически переходит в бесплатный режим.
По сравнению с режимом функциональности сервера Veeam Agent для Linux, свободные и рабочие станции имеют следующие ограничения:
- количество заданий резервного копирования, которые вы можете настроить в Veeam Agent для Linux, ограничено одним;
- вы не можете указывать сценарии предварительного приостановления и последующего запуска в настройках задания резервного копирования;
- вы не можете использовать репозиторий Veeam Cloud Connect в качестве основного места хранения для файлов резервных копий при использовании бесплатного режима.
Вы можете настроить Veeam Agent для Linux для создания резервных копий автоматически (запускаемых в определенное время дня по заданному плану), или выполнять резервное копирование данных вручную. Вы можете создать резервную копию образа машины или отдельных каталогов и файлов. Эта функция доступна для редакции Server. Подробнее читайте в статье Резервное копирование данных.
Перед началом работы ознакомьтесь с системными требованиями и используемыми сетевыми портами.
Шаг #2: Создание нового пользователя
Изначально, после установки CentOS и других дистрибутивов Linux, доступен пользователь под именем root. Суперпользователь root, представляет собой учетную запись администратора системы и имеет максимальные привилегии в системе. Из-за своих высоких возможностей, использовать учетную запись root рекомендуется только в особых случаях, т.к. это способствует случайному совершению деструктивных и необратимых ошибок, исправить которые будет очень сложно.
В связи с этим, администратор сервера создаёт нового пользователя, которому частично делегируют привилегии root. Ниже рассмотрим процесс создания и настройки учетной записи нового пользователя системы.
Создадим новую учетную запись, из под которой будем всегда работать на сервере.
Добавим пароль для входа в систему.
Если вдруг вы забудете пароль, то этой же командой можно будет установить новый пароль, а старый пароль будет сброшен.
Для того чтобы новый пользователь мог устанавливать программные пакеты и редактировать системные файлы, необходимо делегировать ему полномочия суперпользователя.
Сделать это можно добавив учетную запись в группу суперпользователей — .
Теперь новый пользователь может исполнять команды от имени , используя утилиту .
Для того чтобы перейти в учетную запись нового пользователя используется команда su:
Общая настройка системы
Установка пакетов
1. Обновляем CentOS:
yum update
2. Устанавливаем репозиторий EPEL и пакет для загрузки:
yum install epel-release wget
Время
1. Устанавливаем часовой пояс:
\cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
* данной командой мы установим часовой пояс по московскому времени.
2. Устанавливаем и запускаем службу для автоматической синхронизации времени:
yum install chrony
systemctl enable chronyd
systemctl start chronyd
Настройка безопасности
1. Отключаем SELinux:
sed -i «s/SELINUX=enforcing/SELINUX=disabled/» /etc/selinux/config
setenforce 0
* первая команда редактирует конфигурационный файл, чтобы SELinux не запускался автоматически, вторая — отключает его разово. Подробнее читайте статью Как отключить SELinux.
2. Открываем необходимые порты в брандмауэре:
firewall-cmd —permanent —add-port={80,443,8080}/tcp
firewall-cmd —permanent —add-port={20,21,40900-40999}/tcp
firewall-cmd —permanent —add-port={25,465,587}/tcp
firewall-cmd —reload
* 80, 443 и 8080 порты для веб-сервера; 20, 21 порты нужны для работы FTP; 40900-40999 также необходимы для работы FTP (динамические порты для пассивного режима); 25, 465 и 587 порты нужны для работы почтового сервера по SMTP; последняя команда перезапускает firewalld, чтобы применить новые правила. Подробнее про настройку firewalld.