X

Веб-сервер на Linux. Часть 2. Начальная настройка CentOS после установки

Итак у нас есть пустой сервер с CentOS 7 и пора его превратить в полноценный веб-сервер, где можно будет размещать сайты и самое главное – удобно управлять всем хозяйством. Но перед этим надо произвести первичную конфигурацию операционной системы, чем и займемся. Если сервера у вас нет – то ознакомьтесь с первой частью – Веб-сервер на Linux. Часть 1. Установка CentOS 7. Все ниже описанное применимо так же любой пустой VPS/VDS.

Устанавливаем дополнительные программы

Минимальная установка операционной системы хороша тем, что в ней нет ни чего лишнего. Но вместе с тем нет и много полезного. Давайте исправим.

Добавим репозиторий epel, где есть много полезного ПО, которое не вклюбчено в базовый репозиторий CentOS:

# yum install epel-release

Ставим текстовый редактор nano:

# yum install nano

Улучшенный монитор процессов htop:

# yum install htop

htop это улучшенная версия системного монитора top, обладает более широким функционалом. Если вам придется искать утечки памяти – без него не обойтись. Да и просто как монитор ресурсов он более нагляден. Запускается просто:

# htop

Выглядит так:

Инструменты для работы с доменами – dig, host, whois:

# yum install bind-utils whois

Эти утилиты незаменимы для получения подробной информации по домену. Например, whois (что делает я думаю очевидно):

# whois yandex.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:        YANDEX.RU
nserver:       ns1.yandex.ru. 213.180.193.1, 2a02:6b8::1
nserver:       ns2.yandex.ru. 93.158.134.1, 2a02:6b8:0:1::1
state:         REGISTERED, DELEGATED, VERIFIED
org:           YANDEX, LLC.
registrar:     RU-CENTER-RU
admin-contact: https://www.nic.ru/whois
created:       1997.09.23
paid-till:     2017.10.01
free-date:     2017.11.01
source:        TCI

C помощью dig можно получить дополнительную информацию о доменной зоне, например о почтовой сервере:

# dig MX yandex.ru

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> MX yandex.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<

Проверяем настройки времени/даты

# date
Fri Jan 13 06:08:00 EST 2017

У нас стоит EST – североамериканское восточное время. Давайте поменяем на MSK – московское.
Сначала обновим список временных зон:

# yum -y update tzdata

делаем копию текущей зоны:

# mv /etc/localtime /etc/localtime.bak/pre>

Устанавливаем нашу:
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Проверяем:

# date
Fri Jan 13 20:17:06 MSK 2017

Соответственно если вам не нужна Москва выберите, ту зону которая вам нужна в той же папке /usr/share/zoneinfo/Europe

# ls /usr/share/zoneinfo/Europe
Amsterdam  Berlin      Chisinau    Isle_of_Man  Lisbon      Mariehamn  Paris      San_Marino  Stockholm  Vaduz      Zagreb
Andorra    Bratislava  Copenhagen  Istanbul     Ljubljana   Minsk      Podgorica  Sarajevo    Tallinn    Vatican    Zaporozhye
Astrakhan  Brussels    Dublin      Jersey       London      Monaco     Prague     Saratov     Tirane     Vienna     Zurich
Athens     Bucharest   Gibraltar   Kaliningrad  Luxembourg  Moscow     Riga       Simferopol  Tiraspol   Vilnius
Belfast    Budapest    Guernsey    Kiev         Madrid      Nicosia    Rome       Skopje      Ulyanovsk  Volgograd
Belgrade   Busingen    Helsinki    Kirov        Malta       Oslo       Samara     Sofia       Uzhgorod   Warsaw

Синхронизируем время:

# ntpdate pool.ntp.org
13 Jan 16:19:20 ntpdate[1232]: step time server 195.91.239.8 offset -14402.286056 sec

Как видите у меня разница была значительная, больше 4 часов.

Теперь давайте настроим автоматическую синхронизацию времени. Для этого воспользуемся новой утилитой которая появилась в CentOS 7 – chrony. Устанавливаем:

yum -y install chrony

Добавляем в автозагрузку и запускаем:

# systemctl enable chronyd
# systemctl start chronyd

Проверить работает ли синхронизация можно через статус сервиса:

systemctl status chronyd -l

Настраиваем русскую локаль и раскладку клавиатуры

Смотрим, что у нас имеется:

# localectl
   System Locale: LANG=en_US.UTF-8
       VC Keymap: us
      X11 Layout: us

А какие русские есть?

# localectl list-locales | grep ru
ru_RU
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
ru_UA
ru_UA.koi8u
ru_UA.utf8
russian

Отлично ru_RU.utf8 то, что нам надо. Устанавливаем:

# localectl set-locale LANG="ru_RU.UTF-8" LC_NUMERIC="C" LC_TIME="POSIX" LC_MESSAGES="POSIX"

На что тут надо обратить внимание – для формата выдачи времени и сообщений системы оставлена POSIX, что бы получать сообщения именно в том виде, как нам сообщает система, а не как перевел переводчик. Так же формат чисел установлен в системный.

Добавляем раскладки клавиатуры:

# localectl set-keymap us ru --no-convert

Для того что бы настройки заработали как надо – перезапустите сеанс.

Увеличиваем лимиты процессов и открытых файлов в CentOS

По умолчанию в CentOS стоит весьма низкие лимиты на количество одновременно открытых файлов и запущенных процессов. Если вы используете сервер только для разработки или тестирования, то вряд ли это доставит вам проблем. Но если у вас крутиться на сервере реальный проект (или несколько), то даже при небольшой посещаемости вы можете получить, например, от MySQL такую ошибку:

OS error code  24:  Too many open files

Проверяем, что у нас:
процессы на пользователя

# ulimit -u
4096

количество одновременно открытых файлов

# ulimit -n
1024

Если с процессами более менее, то с кол-вом файлов все плохо. Исправляем:

# nano /etc/security/limits.conf

Добавляем в конец файла строки:

*      -        nofile         8192 # меняем лимит на файлы
*      -        nproc         8192 # на процессы

# End of file

Так как мы переопределили лимиты для всех пользователей, то сервер придется перезагрузить. После перезагрузки проверяем:

#ulimit -n -u
open files                      (-n) 8192
max user processes              (-u) 8192

Хочу отдельно отметить, что увеличение лимитов для всех пользователей не совсем корректно. Лучше переопределять лимиты под конкретные задачи. Например, если действительно возникаем проблема с MySQL, то меняем значения для того пользователя, под которым запускаются процессы (обычно mysql).

mysql      -        nofile         8192 # меняем лимит на файлы
mysql      -        nproc         8192 # на процессы

# End of file

Но давайте пока оставим все как есть.

На этом пока все, в следующей статье будем уже непосредственно настраивать среду веб-сервера.

hc:

View Comments (4)