Веб-сервер на Linux. Часть 2. Начальная настройка CentOS после установки
Итак у нас есть пустой сервер с CentOS 7 и пора его превратить в полноценный веб-сервер, где можно будет размещать сайты и самое главное – удобно управлять всем хозяйством. Но перед этим надо произвести первичную конфигурацию операционной системы, чем и займемся. Если сервера у вас нет – то ознакомьтесь с первой частью – Веб-сервер на Linux. Часть 1. Установка CentOS 7. Все ниже описанное применимо так же любой пустой VPS/VDS.
Устанавливаем дополнительные программы
Минимальная установка операционной системы хороша тем, что в ней нет ни чего лишнего. Но вместе с тем нет и много полезного. Давайте исправим.
Добавим репозиторий
epel
, где есть много полезного ПО, которое не вклюбчено в базовый репозиторий CentOS:
1 | # yum install epel-release |
Ставим текстовый редактор
nano
:
1 | # yum install nano |
Улучшенный монитор процессов
htop
:
1 | # yum install htop |
htop
это улучшенная версия системного монитора
top
, обладает более широким функционалом. Если вам придется искать утечки памяти – без него не обойтись. Да и просто как монитор ресурсов он более нагляден. Запускается просто:
1 | # htop |
Выглядит так:
Инструменты для работы с доменами –
dig
,
host
,
whois
:
1 | # yum install bind-utils whois |
Эти утилиты незаменимы для получения подробной информации по домену. Например,
whois
(что делает я думаю очевидно):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # 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
можно получить дополнительную информацию о доменной зоне, например о почтовой сервере:
1 2 3 4 5 6 | # 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< |
Проверяем настройки времени/даты
1 2 | # date Fri Jan 13 06:08:00 EST 2017 |
У нас стоит EST – североамериканское восточное время. Давайте поменяем на MSK – московское.
Сначала обновим список временных зон:
1 | # yum -y update tzdata |
делаем копию текущей зоны:
1 2 3 | # mv /etc/localtime /etc/localtime.bak/pre> Устанавливаем нашу: |
1 | # ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime |
Проверяем:
1 2 | # date Fri Jan 13 20:17:06 MSK 2017 |
Соответственно если вам не нужна Москва выберите, ту зону которая вам нужна в той же папке
/usr/share/zoneinfo/Europe
1 2 3 4 5 6 7 | # 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 |
Синхронизируем время:
1 2 | # 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
. Устанавливаем:
1 | yum -y install chrony |
Добавляем в автозагрузку и запускаем:
1 2 | # systemctl enable chronyd # systemctl start chronyd |
Проверить работает ли синхронизация можно через статус сервиса:
1 | systemctl status chronyd -l |
Настраиваем русскую локаль и раскладку клавиатуры
Смотрим, что у нас имеется:
1 2 3 4 | # localectl System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: us |
А какие русские есть?
1 2 3 4 5 6 7 8 9 | # 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
то, что нам надо. Устанавливаем:
1 | # localectl set-locale LANG="ru_RU.UTF-8" LC_NUMERIC="C" LC_TIME="POSIX" LC_MESSAGES="POSIX" |
На что тут надо обратить внимание – для формата выдачи времени и сообщений системы оставлена POSIX, что бы получать сообщения именно в том виде, как нам сообщает система, а не как перевел переводчик. Так же формат чисел установлен в системный.
Добавляем раскладки клавиатуры:
1 | # localectl set-keymap us ru --no-convert |
Для того что бы настройки заработали как надо – перезапустите сеанс.
Увеличиваем лимиты процессов и открытых файлов в CentOS
По умолчанию в CentOS стоит весьма низкие лимиты на количество одновременно открытых файлов и запущенных процессов. Если вы используете сервер только для разработки или тестирования, то вряд ли это доставит вам проблем. Но если у вас крутиться на сервере реальный проект (или несколько), то даже при небольшой посещаемости вы можете получить, например, от MySQL такую ошибку:
1 | OS error code 24: Too many open files |
Проверяем, что у нас:
процессы на пользователя
1 2 | # ulimit -u 4096 |
количество одновременно открытых файлов
1 2 | # ulimit -n 1024 |
Если с процессами более менее, то с кол-вом файлов все плохо. Исправляем:
1 | # nano /etc/security/limits.conf |
Добавляем в конец файла строки:
1 2 3 4 | * - nofile 8192 # меняем лимит на файлы * - nproc 8192 # на процессы # End of file |
Так как мы переопределили лимиты для всех пользователей, то сервер придется перезагрузить. После перезагрузки проверяем:
1 2 3 | #ulimit -n -u open files (-n) 8192 max user processes (-u) 8192 |
Хочу отдельно отметить, что увеличение лимитов для всех пользователей не совсем корректно. Лучше переопределять лимиты под конкретные задачи. Например, если действительно возникаем проблема с MySQL, то меняем значения для того пользователя, под которым запускаются процессы (обычно mysql).
1 2 3 4 | mysql - nofile 8192 # меняем лимит на файлы mysql - nproc 8192 # на процессы # End of file |
Но давайте пока оставим все как есть.
На этом пока все, в следующей статье будем уже непосредственно настраивать среду веб-сервера.
00:04
Про лимиты – попробовал, но у меня почему-то осталось без изменений…
В файле – сохранил. Может, ребут надо сделать?
00:08
И с установкой времени – не пошло – решилось по-другому.. https://scontent-amt2-1.xx.fbcdn.net/v/t1.0-9/19149074_1552201441479154_8256966176834466265_n.jpg?oh=486441e2fadb45c2ee048e97c21af4fd&oe=59A04900
16:32
zb9s7r
12:43
gc4zyw