Налаштування хостингу на VDS під Ubuntu. Налаштування сервера з нуля на прикладі VPS від Hetzner'а Створюємо свої сервери DNS

04.11.2020 Цікаве

В інтернеті сьогодні можна не тільки розважатися, а й навчатися, працювати та заробляти. Кількість сайтів зростає щомиті, послуги хостингу також стають привабливими і множаться як гриби після дощу. Буває, що хостер виправдовує всі очікування, але іноді доводиться переїжджати. Можна найняти фрілансера, але краще навчитися робити це самому. Сьогодні на тебе чекає невелика інструкція саме на цей випадок.

Постановка задачі

Ситуація найжиттєвіша. Інтернет-магазин, розміщений на шаред-хостингу, після запуску почав отримувати клієнтів, але з'явилися побажання до функціональності, і розробники активно зайнялися доробкою сайту. З'ясувалося, що коли в цьому бере участь кілька людей, постійно копіювати файли через FTP для тесту, та ще й на робочий сайт, дуже проблемно. Втрачався контроль, хто колись що зробив, потрібно було турбуватися про збереження оригінальних файлів, щоб було легко відкотитися. Власнику доводилося або погоджувати редагування, або копіювати все самому. Розробник не міг одразу подивитися результат і чекав. Процес сильно гальмувався. В результаті дійшли того, що потрібно використовувати можливості Git і створити новий сайт-дзеркало, де можна було б все обкатувати. За такої схеми розробник міг відразу тестувати код, а у разі схвалення код переносили до master і викладали вже на робочий сайт. Також можна легко відстежувати коміти.

Друга проблема: хостинг постійно падав. Причину в результаті виявили: Entry processes limit - параметр, який визначає кількість CGI/PHP-процесів, що входять всередину віртуального контейнера, і про який не дуже люблять говорити маркетологи хостера. На графіках його теж не видно, лише маленька графа у таблиці. У результаті при невеликих навантаженнях CPU і RAM (не більше 20%) сервер взагалі не працював навіть за мінімальній кількостівідвідувачів. У результаті було ухвалено рішення переїжджати.

Початкові установки сервера

OC в VDS встановлюється автоматично. Достатньо вибрати версію і варіант з веб-панеллю або без і почекати, поки не прийде лист з даними для входу. На хостингах пропонуються різні веб-панелі. Коли цей матеріал створювався, Vesta не підтримувала Ubuntu 16.04 і потреби в ній не було, тому вибрали чисту систему. Усе подальші діїведуться від імені root. Насамперед перевіряємо локаль, часовий пояс і час. Взагалі, веб-застосунки зазвичай не звертають уваги на деякі системні налаштуванняАле іноді трапляється саме той випадок, тому краще відразу зробити все правильно.

#locale

Якщо у відповідь отримуємо відмінне від ru_RU.UTF - переналаштовуємо.

# locale-gen ru_UA ru_RU.UTF-8 ru_RU ru_RU.UTF-8 # localedef -c -i ru_RU -f UTF-8 ru_RU.UTF-8 # dpkg-reconfigure locales # update-locale LANG=ru_RU.UTF-8

Перевіряємо час:

Якщо часовий пояс не відповідає – переконфігуруємо.

# dpkg-reconfigure tzdata

Оновлюємо сервер:

# apt update && apt upgrade

Тепер можемо ставити послуги.

Ставимо веб-сервер

Незважаючи на їхню різноманітність, вибір установки зазвичай зводиться до трьох варіантів: Apache, nginx або nginx як реверс Apache. Apache дуже гнучкий у налаштуваннях і використовує модулі для обробки динамічних запитів, тому добре справляється з динамікою. Nginx гарний у віддачі статики та споживає менше ресурсів, але для обробки динаміки використовує сторонній модуль, що знижує швидкість та трохи ускладнює налаштування. Залежно від конкретного додаткукожен з них може мати свої плюси та мінуси та показувати різну швидкість. Тому остаточний вибір веб-сервера завжди доводиться підтверджувати практикою, підбираючи. оптимальний варіант. Проблема nginx - те, що в деяких специфічних двигунах слід вручну возитися з редиректами, коли на Apache все працюватиме буквально з коробки, досить просто включити mod_rewrite.

Тестування навантаження можна зробити за допомогою ab (Apache Benchmark, входить в apache2-utils) або siege. Причому краще перевірити з localhost та віддаленого вузла, щоб бачити, як працює мережа.

# ab -c 10 -n 6000 http://example.org/

Хоча ab – це скоріше для себе, щоб оцінити ефективність установок. Людину з боку зазвичай цікавить тільки те, що показує Google PageSpeed, тому орієнтуватися слід і на неї.

В останньому випадку сайт на старому хостингу давав 60, після перенесення на VDS (з такими ж параметрами) він в Apache в установці за замовчуванням показував 72, nginx з голим конфігом - 62, після додавання стиснення - 78. На цьому і зупинилися, вибрали nginx . У репозиторії кілька пакетів, для більшості ситуацій достатньо базового core, що містить усі основні модулі, для PHP нам знадобиться FPM.

# apt nginx install nginx php7.0-fpm

Файл загалом стандартний, але для швидкості додамо кешування та стиснення. Точні параметри в кожному випадку необхідно підбирати досвідченим шляхом, але для невеликих та середніх проектів таких установок зазвичай досить. У nginx.conf додаємо або, якщо пощастило, знімаємо коментарі у секції http:

# nano /etc/nginx/nginx.conf http ( .... open_file_cache max=200000 inactive=60s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on; server_tok_s; body_timeout 10; gzip on; gzip_disable " msie6"; gzip_static on; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types javascript application/javascript text/x-js;

Створюємо налаштування для домену:

# nano /etc/nginx/sites-available/example.org server ( listen 80; server_name example.org default; root /var/www/example.org; access_log /var/log/nginx/access.log; error_log /var /log/nginx/error.log;rewrite_log on;# Корисне налаштування для налагодження index index.php;try_files $uri $uri/ /index.php?$query_string; location ~ \.php$ # fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/run/php/php7.0-fpm.sock; ) # Кешуємо картинки і txt/XML/JS/CSS. .+\.(jpg|jpeg|gif|png|js|css|txt|xml)$ ( access_log off; expires 30d; ) # Блокуємо доступ до каталогу.git (про нього далі), за аналогією додаємо свої правила location ~ /\.git ( deny all; ) )

Це загальний приклад для стандартного двигуна. Деякі движки типу OpenCart або WebAsyst вимагають специфічних налаштувань, і навіть не завжди працює те, що пропонується в Мережі.

Перевіряємо, чи стиск працює. Це можна зробити, переглянувши заголовок Content-Encoding у Firebug (він повинен показувати gzip), або за допомогою спеціального сервісу.

Включаємо сайт:

# ln -s /etc/nginx/sites-available/example.org /etc/nginx/sites-enabled/example.org

Перезапускаємо nginx:

# service nginx restart

Але працювати ще не буде. Потрібно налаштувати PHP. Для FPM всі установки знаходяться у /etc/php/7.0/fpm. Перевіряємо, що в pool.d/www.conf обліковий запис збігається з nginx і включений сокет.

# nano /etc/php/7.0/fpm/pool.d/www.conf user = www-data group = www-data listen = /run/php/php7.0-fpm.sock

Окрім цього, можна звернути увагу на параметри, що визначають кількість процесів, які обслуговуватимуть PHP-запити.

Pm = dynamic pm.max_children = 15 pm.start_servers = 6 pm.min_spare_servers = 2 pm.max_spare_servers = 6

На трохи завантажених серверах може бракувати кількості процесів. У логах про це одразу скажуть.

# cat /var/log/php7.0-fpm.log WARNING: server reached pm.max_children setting (5), consider raising it

Ще важливий файл php.ini. Параметрів там багато, і можна казати довго. Але спочатку слід увімкнути стиск, встановити максимальний розмір файлу на аплоад, підключити mail(), сесії та дуже бажано включити акселератор OPcache.

# nano /etc/php/7.0/fpm/php.ini zlib.output_compression = On upload_max_filesize = 2M sendmail_path = sendmail -t -i session.save_path = "/var/lib/php/sessions" opcache.enable=1 opcache. memory_consumption=128 pcache.max_accelerated_files=2000

Обов'язково перевіряємо права доступу на /var/lib/php/sessions, щоб туди міг писати nginx, інакше сесії не утворюватимуться. Перезапускаємо.

# service php7.0-fpm restart

Тепер перенесення сайту. Якщо переносимо з іншого хостингу, там створюємо бекап. Якщо є хостингова веб-панель, можна використовувати її можливості. Або вручну:

# tar -zcvf backup.tar.gz /var/www

І на новому місці розпаковуємо:

# tar -zxvf backup.tar.gz /var/www

Але для сайту нам потрібна СУБД.


Ставимо MySQL

З MySQL все дуже просто. Вводимо

Продовження доступне лише учасникам

Варіант 1. Приєднайтесь до спільноти «сайт», щоб читати всі матеріали на сайті

Членство у спільноті протягом зазначеного терміну відкриє тобі доступ до ВСІХ матеріалів «Хакера», збільшить особисту накопичувальну знижку та дозволить накопичувати професійний рейтинг Xakep Score!


У цій статті ми поетапно розповімо про те, як створити віртуальний сервер (VPS/VDS) на панелі керування сайтом та про те, як підключитися до створеного сервера.

Компанія Serverspace надає послуги Хмарних серверів в оренду – ознайомтеся з нашими тарифами на VPS на Windows та Linux.

Тож почнемо.

Створення віртуального сервера

1. на панелі керування сайт, перейдіть в розділ «Сервери» та натисніть кнопку «Створити сервер».

2. Потім виберіть шаблон віртуального сервера – операційну систему (ОС), яка буде встановлена ​​на сервер. Для встановлення доступні такі ОС:

  • Windows Server 2008 R2 (RU/ENG);
  • Windows Server 2012 R2 (RU/ENG);
  • Windows Server 2016 R2 (RU/ENG);
  • FreeBSD 10, 11;
  • Debian 8.11, 9.5;
  • Ubuntu 16.4, 18.4;
  • CentOS 6.10, 7.5;
  • PfSense 2.4;
  • VyOS 11.8.

Вартість ліцензії Windows Server при виборі відповідної ОС вже включена до абонентську плату, незалежно від того, є у вас домен у віртуальній інфраструктурі чи ні.

Якщо ж ви плануєте встановити на VPS/VDS іншу ОС, просто створіть її образ і відправте його нашій техпідтримці.

Параметри готових конфігурацій:

При цьому надалі ви зможете змінювати конфігурацію прямо на панелі керування.

Після вибору ОС необхідно вибрати центр обробки даних (ЦОД), в якому розміщуватиметься ваш віртуальний сервер. Наші ЦОД розташовані в Білорусі (beCloud), Росії (DataSpace) та Нідерландах (AM2), і для кожної країни доступна своя конфігурація:

4. За додаткову платуви можете підключити автоматичне створення резервних копій(Бекапи) віртуального сервера, які створюються раз на добу. Для цього необхідно вибрати період зберігання бекапів – 7, 14, 21 або 28 днів.

5. Якщо на етапі підбору операційної системиви вибрали Windows Server і її необхідно включити до існуючого домену Microsoft Active Directoryпросто поставте галочку в чекбоксі «виконати системну підготовку Windows». При цьому час створення сервера збільшиться на 15-20 хвилин, тому що в процесі створення буде запущено спеціальна утиліта sysprep.

Якщо в якості операційної системи вибрано FreeBSD, Debian, Ubuntu або CentOS, необхідно додатково вказати спосіб підключення - через пару логін/пароль або SSH. Логін та пароль генеруються автоматично та з'являються на екрані після створення сервера. SSH-ключ можна згенерувати за допомогою програми ssh-keygen або прикріпити вже згенерований ключ.

6. Потім необхідно вказати кількість серверів та присвоїти їм імена. За один раз можна створити до 5 серверів.

При створенні сервера мережному інтерфейсу буде автоматично присвоєно одну безкоштовну IPv4-адресу. Надалі ви зможете підключити додаткові IPv4- та IPv6-адреси за окрему плату.

Підключення до віртуального сервера

Після створення віртуального сервера можна підключитися до нього через веб-консоль. Для підключення знадобиться логін та пароль адміністратора, зазначені у вкладці «Стан».

Кнопка переходу в веб-консоль розташована у верхньому правому кутку. Якщо вам незручно користуватися веб-консоллю, ви можете підключатися до сервера будь-яким іншим способом.

Підключення до операційних систем відбувається за різними протоколами: для FreeBSD, Debian, Ubuntu та CentOS використовується протокол SSH, а для підключення до серверів Windows - протокол RDP.

Здійснюється за допомогою командного рядка. Для цих цілей найзручніше використовувати безкоштовну програму PuTTy. Вона не вимагає установки: завантаживши та запустивши утиліту, ви можете відразу підключитися до VDS за протоколом SSH, ввівши IP-адресу (номер порту за замовчуванням - 22) і натиснувши на кнопку “Open”. Після цього на екрані з'явиться вікно консолі із запрошенням до авторизації “login as:”. Введіть root, натисніть “Enter”, далі вкажіть отриманий під час замовлення послуги пароль та знову підтвердіть дію клавішею введення. Тепер можна розпочинати роботу.

Сама процедура налаштування VDS є введенням у консоль текстових команд, за допомогою яких можна здійснювати практично будь-які операції над сервером. Нижче розглянуто послідовність базових дій, які необхідно здійснити одразу після запуску віртуальної машини, а також покрокова установказв'язки програмного забезпеченнядля розміщення веб-сайтів. Приклади адаптовані для двох найбільш поширених сімейств Лінукс: Debian (до неї відноситься, наприклад, популярний Ubuntu) і Centos (до нього входить сам Centos, Fedora та ряд інших).

Увага! Для ОС версії Bitrix 6, що встановлюється на VDS, встановлення LEMP не потрібно!

Початкове налаштування VDS

Оновлення програмного забезпечення

Починати налаштування VDS необхідно з глобального оновлення. Запустити апдейт у Debian-подібних операційних системах можна так:

Apt-get update && apt-get upgrade

для Centos команда інша:

У процесі оновлення ви запитаєте, чи хочете ви встановити нові пакети. Відповідайте ствердно за допомогою клавіші Y і підтвердіть свій вибір, натиснувши “Enter”.

Додавання нового користувача

Працювати з сервером під обліковим записом root настійно не рекомендується – найкраще створити нового користувача та передати йому необхідні права. У Debian-подібних системах це робиться командою:

Adduser username

де username слід замінити на бажане ім'я користувача. Після виконання вас попросять задати пароль, а потім запропонують заповнити додаткові поля (робити це необов'язково - їх можна залишити порожніми).

При роботі з Centos також використовується команда:

Adduser username

Однак пароль задається окремо:

Passwd username

Передача привілеїв root

Після створення нового користувача йому необхідно передати права суперадміністратора, інакше ви не зможете повноцінно налаштувати VDS. Робиться це через додавання новоствореного облікового запису до відповідної групи. Для Debian-подібних:

Gpasswd -a username sudo

для Centos-подібних:

Gpasswd -a username wheel

Управління SSH

З метою безпеки необхідно виконати ряд маніпуляцій з конфігураційним файлом sshd_config, який, як легко здогадатися, відповідає за налаштування віддаленого підключення до сервера SSH. У різних дистрибутивах Лінукс для редагування використовуються різні утиліти, відповідно, і команди для них дещо відрізнятимуться. У Debian-подібних застосовується nano:

Nano /etc/ssh/sshd_config

Для збереження внесених змін необхідно натиснути комбінацію клавіш Ctrl+X, потім Y та “Enter”. Centos має у своєму складі редактор vi:

Vi /etc/ssh/sshd_config

Збереження інформації здійснюється командою: x, після чого необхідно натиснути “Enter”.

У sshd_config слід заборонити вхід за допомогою облікової запису root, замінивши

PermitRootLogin yes

PermitRootLogin no

а також змінити порт SSH, який використовується за замовчуванням, замінивши

наприклад, на

Номер порту краще вибирати з діапазону 49152-65535 - це дозволить уникнути можливих конфліктів із різними службами та сервісами Лінукс. Після описаних маніпуляцій необхідно перезапустити SSH. У Debian це робиться так:

Service ssh restart

Systemctl reload sshd

Тепер необхідно перепідключитись до сервера через призначений порт під новим обліковим записом, після чого налаштування VDS можна продовжувати.

Встановлення та налаштування LEMP

Більшість сучасних CMS написані мовою програмування PHP. Це означає, що для розміщення практично будь-якого сайту, незалежно від типу та функціоналу, нам знадобиться LEMP. Дана абревіатура позначає зв'язку сучасного та дуже швидкого веб-сервера Nginx, інтерпретатора php-fpm та системи управління базами даних MySQL. Процедура встановлення досить проста і не триватиме багато часу.

Установка Nginx

Почнемо з установки Nginx. У Debian-подібних дистрибутивах це робиться одним рядком:

Sudo apt-get install nginx

після чого сервер буде автоматично запущено.

У Centos спочатку необхідно додати репозиторій EPEL:

Sudo yum install epel-release

і тільки після цього проводити установку:

Sudo yum install nginx

Фінальний етап - запуск Nginx:

Sudo systemctl start nginx

Установка MySQL

У Debian-подібних операційних системах сервіс баз даних встановлюється командою:

Sudo apt-get install mysql-server mysql-client

У процесі вас попросять задати пароль адміністратора MySQL.

У Centos-подібних дистрибутивах замість MySQL використовується форк MariaDB, що володіє тими ж функціональними можливостями. Після його встановлення:

Sudo yum install mariadb-server mariadb

сервер баз даних необхідно запустити, а також додати до списку автозавантаження:

sudo systemctl start mariadb sudo systemctl enable mariadb

Налаштування MySQL

Первинне налаштування сервера баз даних здійснюється за допомогою спеціального скрипта, що йде в комплекті з основним ПЗ:

Sudo mysql_secure_installation

Після запуску вас попросять ввести пароль адміністратора MySQL, який ми задали на попередньому етапі, а потім поставлять низку питань, відповідати на які необхідно кнопками Y (так) та N (ні), підтверджуючи вибір клавішею “Enter”:

  • Чи хочете ви змінити пароль? (Change the root password?) - Ні (N)
  • Видалити анонімних користувачів? (Remove anonymous users?) - Так (Y)
  • Заборонити віддалену авторизацію з правами суперкористувача? (Disallow root login remotely?) - Так (Y)
  • Видалити тестову базу даних? (Remove test database and access to it?) - Так (Y)
  • Перезавантажити таблицю привілеїв? (Reload privilege tables now?) - Так (Y)

Додавання нової бази даних

Управління базами даних здійснюється через консоль MySQL. Щоб до неї увійти, необхідно ввести команду:

Для розміщення динамічного сайту необхідно створити базу даних, з якою працюватиме двигун. Зазвичай кожному проекту створюється окрема БД і окремий користувач, який може керувати. Давайте створимо базу даних sitedb, користувача site_user, а потім передамо останньому правана керування sitedb (ви можете замінити запропоновані імена на будь-які інші).

Робиться це так:

Створюємо базу даних:

CRE ATE DATABASE sitedb;

Створюємо користувача (замість password вкажіть унікальний пароль)

CREATE USER site_user@localhost IDENTIFIED BY "password";

Передаємо права керування sitedb користувачу site_user:

GRANT ALL PRIVILEGES ON sitedb.* TO site_user@localhost IDENTIFIED BY "password";

Оновлюємо дані про привілеї:

FLUSH PRIVILEGES;

Після завершення всіх операцій вийдіть з консолі MySQL:

Встановлення PHP

Важливий етап налаштування VDS - встановлення та конфігурування інтерпретатора PHP. Команди для різних дистрибутивів Лінукс відрізняються. Інсталяція в Debian здійснюється так:

Sudo apt-get install php5-fpm php5-mysql

У Centos - трохи інакше:

Sudo yum install php php-mysql php-fpm

Конфігурація PHP

Перший крок – редагування файлу php.ini. У Debian і Ubuntu він знаходиться тут:

Sudo nano /etc/php5/fpm/php.ini

У Centos-подібних дистрибутивах - безпосередньо у каталозі etc:

Sudo vi /etc/php.ini

В обох системах спочатку необхідно розкоментувати і змінити значення в наступному рядку:

;cgi.fix_pathinfo=1

Cgi.fix_pathinfo=0

Таким чином ми закрили важливу вразливість, за допомогою якої зловмисники могли б отримати несанкціонований доступ до сайту. На цьому налаштування інтерпретатора на Debian завершено, залишилося перезапустити PHP-процесор:

Sudo service php5-fpm restart

У Centos необхідно відредагувати і файл www.conf:

Sudo vi /etc/php-fpm.d/www.conf

Тут потрібно знайти рядок

Listen = 127.0.0.1:9000

та замінити на

Listen = /var/run/php-fpm/php-fpm.sock

Також міняємо

Listen.owner = nobody listen.group = nobody

Sudo systemctl start php-fpm sudo systemctl enable php-fpm

Створення директорії

Тепер необхідно створити каталог, в якому будуть розміщуватись файли вашого ресурсу. У будь-якій операційній системі Лінукс це робиться наступною командою:

Sudo mkdir /var/www/sitename.ru/public_html

У даному прикладі sitename.ru необхідно замінити на доменне ім'ясайту. Що стосується файлів CMS, їх слід завантажити до папки public_html. Після завантаження необхідно передати права керування веб-серверу. Тут є відмінності в іменах, що використовуються для позначення Nginx. Для Debian-подібних дистрибутивів команда виглядатиме так:

Sudo chown -R www-data:www-data /var/www/html/*

У Centos інакше:

Sudo chown -R nginx:nginx /var/www/html/*

Додавання нового хоста Nginx

Останній етап налаштування VDS для розміщення сайту – додавання віртуального хоста Nginx. Нам достатньо редагувати файл default. У сімействі Debian це робиться так:

Sudo nano /etc/nginx/sites-available/default

Sudo vi /etc/nginx/conf.d/default.conf

Відкривши файл, видаліть з нього всю інформацію, замінивши на код, наведений нижче (замість sitename.ru підставте актуальне ім'я сайту), і збережіть результат:

Server ( listen 80; server_name sitename.ru; server_name_in_redirect off; access_log /var/log/nginx/sitename.access_log; error_log /var/log/nginx/sitename.error_log; root /var/www/sitename.ru/public_html; index index.php index.html index.htm default.html default.htm;location / (try_files $uri $uri/ /index.php?$args; ) error_page 404 /404.html; location = /50x.html ( root /usr/share/nginx/html; ) location ~ \.php$ ( try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; ))

Залишилося перезапустити Nginx. Команда для дистрибутивів Debian:

Sudo service nginx restart

Sudo systemctl restart nginx

Тепер віртуальний сервер повністю готовий до експлуатації, і можна розпочинати роботу безпосередньо з веб-ресурсом. Подальші крокизалежить від обраної CMS.

У цьому матеріалі я розповім, як розпочати роботу з VDS (Virtual Dedicated Server). Стаття орієнтована на власників та адміністраторів сайтів, які бажають спробувати цей вид хостингу, але не відчувають повної впевненості у своїх силах. Насправді все негаразд страшно, як здається здавалося б. Мається на увазі, що ви маєте досвід роботи зі звичайним хостингом і більш менш орієнтуєтеся в даному питанні.

Відразу хочу звернути увагу до термінологічного нюансу. Англомовний термін «shared hosting» зазвичай перекладають російською як « віртуальний хостинг», що вносить плутанину. Так як і там, і там є слово «віртуальний», деякі користувачі вважають, що «віртуальний хостинг» і «віртуальний виділений сервер» це те саме. Ні, це зовсім різні речі.

Shared hosting, він же віртуальний хостинг, він же звичайний хостинг - найдешевший і найпоширеніший вид хостинг-послуг, коли безліч сайтів різних клієнтів розміщено на одному веб-сервері. Ці сайти ділять ресурси сервера за певними, досить суворими правилами. Один з головних мінусів shared хостингу - це те, що ви обмежені рамками того набору програмного забезпечення, який встановлений і налаштований хостером, що при вирішенні нестандартних завдань може бути суттєвою проблемою. До того ж зі зростанням вашого проекту може скластися ситуація, коли на звичайному хостингу йому банально перестане вистачати ресурсів.

VDS(Virtual Dedicated Server), він же VPS (Virtual Private Server) - більш просунутий і дорогий вид хостинг-послуг, коли клієнту виділяється окремий сервер, повністю незалежний від інших клієнтів цього хостингу. VDS є вашою "особистою територією" - це повноцінна (хоч і віртуальна) машина, на якій ви можете використовувати будь-яке потрібне вам програмне забезпеченняу будь-якій конфігурації, не оглядаючись ні на кого. Аналогічно справи і з використанням обчислювальних ресурсів даного сервера— можна завантажувати його під зав'язку хоч усі 24 години на добу, у межах купленої конфігурації у вас немає жодних обмежень. В силу описаних переваг VDS часто виявляється золотою серединою між використанням shared хостингу та орендою/купівлею фізичного сервера.

Як відомо з назви статті, у ній піде саме про другий варіант. Спочатку я розповім про роботу з сервером загалом, потім коротко, у форматі «питання-відповідь» опишу способи вирішення деяких типових завдань. Для прикладів я використовуватиму хостинг Timeweb, так як на Наразіу мене під рукою є їхній сервер, куди я можу підглядати і звідки робити скріншоти. В інших хостерів все влаштовано схожим чином.

Для налаштування різних параметрів VDS я активно використовуватиму ISPmanager — програмний продуктвід компанії ISPsystem, що представляє собою панель управління компонентами веб-сервера зі звичним більшості користувачів графічним інтерфейсом. Робота через ISPmanager значно полегшує конфігурування системи та знижує поріг входження для адміністраторів-початківців. Існують й інші продукти зі схожим функціоналом, у тому числі й безкоштовні, проте використання саме ISPmanager обумовлено тим, що він є стандартом де-факто у цій галузі. Також я не обійду стороною командний рядок, у Linux-системах без нього нікуди.

Вибір конфігурації VDS

Отже, приступимо до справи. Ідемо на сайт хостера в розділ VDS, вибираємо потрібний тариф, вводимо інформацію про себе чи свою організацію. Тут все так само, як і у випадку зі звичайним хостингом, єдина відмінність - потрібно додатково вибрати апаратну конфігурацію сервера та операційну систему, а також визначитися, чи потрібно встановлювати ISPmanager. Якщо ви починаєте знайомство з Linux і у вас немає специфічних вимог до ОС, рекомендую зупинитися на Ubuntu. Вибір параметрів «заліза» залежить від планованих завдань, насамперед рекомендую орієнтуватися на необхідні обсяги дискового простору та ОЗП. ISPmanager замовляємо у версії Lite із оплатою помісячно. Після того, як замовлення зроблено, знадобиться деякий час для розгортання сервера, після чого ним можна буде почати користуватися.

Способи керування сервером

Розглянемо три основні елементи управління:

1. Панель керування від хостера. У випадку з VDS вона не складніша за аналогічну панель звичайного хостингу. Більше того, вона навіть простіша, тому що в ній відсутні деякі звичні функції. Через панель хостера можна замовляти та оплачувати послуги, дивитися базову статистику роботи сервера, спілкуватися з техпідтримкою. Також у цій панелі є дуже обмежений набір органів управління технічними параметрамисервера. У Timeweb панель управління VDS виглядає так:

2. ISPmanager. А ось тут у плані технічних налаштуваньвже є десь розгулятися. За допомогою даного інструменту можна повноцінно конфігурувати всі основні компоненти веб-сервера - Apache/nginx, MySQL, PHP та інші. Через ISPmanager можна встановлювати та оновлювати програмне забезпечення, працювати з файлами, базами даних, консоллю, отримувати розширену інформацію про роботу сервера. Виглядає ISPmanager 5 Lite так:

Щоб зайти в ISPmanager, наберіть в адресний рядок браузера http://x.x.x.x:1500/, де x.x.x.x — IP-адресу вашого VDS (подивитися її можна на панелі керування хостера).

3. Командний рядок, він же консоль операційної системи. Найпотужніший і гнучкий, але водночас найскладніший для освоєння і не завжди зручний інтерфейс.

Основи роботи з консоллю

Зупинимося докладніше на останньому пункті - командному рядку. Зазвичай саме вона є головним відлякувачем користувачів у справі освоєння серверних справ. Але не такий страшний біса, як його малюють. За великим рахунком спочатку можна обійтися без консолі взагалі або звести спілкування з нею до мінімуму. Однак, якщо ви плануєте подальшу роботуз серверами на Linux-системах, вкрай рекомендується освоїти роботу з командним рядкомхоча б у мінімальному обсязі.

Зайти в консоль можна кількома способами:

  1. Через панель керування хостера. У таймвебівській панелі є вбудований термінал, посилання на який є у головному меню.
  2. Через ISPmanager: Інструменти > Shell-клієнт.
  3. Через SSH-клієнт – наприклад, PuTTY. Хоча цей спосіб і є класичним, але за наявності перших двох варіантів потреби в ньому зазвичай немає.

Ось деякі базові командиконсолі:

cd – змінює поточний каталог на вказаний. Як аргумент можна задати як абсолютний шлях до потрібного каталогу, і відносний. cd .. здійснює перехід до каталогу на рівень вище поточного. CD без аргументів — перехід до домашнього каталогу користувача.

ls – показує вміст заданого каталогу, при використанні без аргументів – поточного.

pwd — Показує повний шлях до поточного каталогу.

Власне, для навігації по файловій системіперерахованих команд достатньо. Рекомендую запам'ятати їх відразу, для решти всіх команд спочатку можна і потрібно використовувати шпаргалку.

Також згадаю команду сlear ( гаряча клавіша Ctrl+L), яка очищує вікно терміналу. Це буває корисно у випадках, коли на екран виведено дуже багато інформації і просто починає рябити в очах.

Питання та відповіді

Перейду до відповіді питання, які спочатку можуть виникнути під час роботи з сервером. Зовсім очевидні речі (наприклад, де створити FTP-аккаунт або MySQL-базу), я розглядати не буду, з цим будь-хто здатний розібратися самостійно, просто пройшовшись по меню в ISPmanager. Для дуже лінивих у лівому верхньому куті його панелі є форма пошуку, а самому низу меню — розділ «Довідка».

Як прив'язати домен до сайту?

Крок 1: Прописуємо домен на панелі хостера: Домени > Перенести домен. Якщо на даному кроцівиникає повідомлення, що домен вже розміщений іншим користувачем, спочатку потрібно видалити прив'язку цього домену в тому акаунті, де він розміщений.

Крок 2: Заходимо до ISPmanager: Домени > WWW-домени, натискаємо кнопку «Створити», задаємо ім'я домену та його налаштування.

Крок 3: За допомогою панелі реєстратора вказуємо для нашого домену ns-сервера хостера. У випадку з Timeweb вони такі:

ns1.timeweb.ru
ns2.timeweb.ru
ns3.timeweb.org
ns4.timeweb.org

Якщо вам необхідно створити піддомен, це робиться так само, але без третього кроку.

Як дізнатися шлях до папки сайту?

Через ISPmanager: Домени > WWW-домени, стовпець «Корнева директорія».

Де знайти менеджер файлів?

У ISPmanager: Система > Менеджер файлів.

Як дізнатися обсяг зайнятого та вільного місця на диску?

1) Через панель керування хостера: У розділі «Список VDS» на вкладці «Головна» блок « Вільне місцена диску».

2) Через ISPmanager: На вкладці «Головна» у блоці «Інформація про систему» ​​клацаємо за значенням праворуч від напису «Розмір дискового простору».

3) Через консоль: df -h

Як дізнатися обсяг зайнятої та вільної оперативної пам'яті?

1) Через ISPmanager: На вкладці «Головна» у блоці «Інформація про систему» ​​рядок «Оперативна пам'ять».

2) Через консоль: free-m

Як дізнатися навантаження на процесор?

1) Загальний графікдоступний через панель керування хостера: У розділі «Список VDS» на вкладці «Головна» блок «Процесор».

2) Аналогічний графік є в ISPmanager: На вкладці "Головна" блок "Ресурси сервера".

3) Розподіл навантаження по процесах можна переглянути через консоль: top (для виходу з режиму моніторингу натисніть клавішу q).

Як дізнатися розмір окремої папки?

1) Через ISPmanager: Облікові записи > Користувачі > клацаємо на користувача, натискаємо кнопку «Увійти» > Статистика > Використання диска > вибираємо потрібну папку. Після перегляду не забудьте вийти з облікового записукористувача, вибравши у верхньому правому кутку в підменю облікового запису «Повернутися в root».

2) Через консоль: du-sh dirname

Як заархівувати/розархівувати папку з файлами?

Робота з архівами в ISPmanager доступна через менеджер файлів (кнопки «Архів» та «Вилучити»). Підтримуються формати ZIP та tar.

Архівація через консоль за допомогою архіватора tar з gzip-стисненням: tar -cvzf archivename.tar.gz dirname

Архівація через консоль за допомогою архіватора ZIP: zip -r archivename.zip dirname

Розпакування архіву через консоль за допомогою архіватора tar: tar -xvf archivename.tar

Розпакування архіву через консоль за допомогою архіватора ZIP: unzip archivename.zip

Як імпортувати/експортувати базу MySQL?

Через ISPmanager: Дод. програми > phpMyAdmin. Цей спосібзручний, але не завжди працює.

Імпорт через консоль: mysql -u username -p database_name

Експорт через консоль: mysqldump -h hostname -u username -p database_name > dumpfile.sql

Як настроїти параметри MySQL-сервера?

Через ISPmanager: Установки > Сервери баз даних > MySQL > Кнопка «Установки». У багатьох випадках специфічне налаштування MySQL не потрібно, однак іноді «підкрутити» деякі параметри просто необхідно. Наприклад, якщо ви використовуєте 1C-Бітрікс, продуктивність роботи з базою даних при налаштуваннях за замовчуванням буде досить низькою, про що вам повідомить вбудований у цю CMS бенчмарк.

Як змінити версію PHP?

Через ISPmanager: Налаштування web-сервера > PHP > вибираємо потрібну версію, натискаємо кнопку «Як модуль Apache». Якщо потрібної версії PHP у списку немає, переходимо: Установки > Можливості. Тут ми бачимо список встановленого та доступного для встановлення ПЗ. Вибираємо потрібну нам альтернативну версію PHP, натискаємо кнопку "Змінити", ставимо галочку "ISPsystem модуль PHP для Apache версії x.x", натискаємо "Застосувати зміни". Чекаємо, коли Нова версія PHP встановиться, після чого повертаємося до першого кроку, де вмикаємо її як модуль Apache. Для отримання максимальної продуктивностірекомендується використовувати найсвіжішу з версій PHP, з якою ваш сайт нормально працює.

Як встановити розширення PHP?

Через ISPmanager: Налаштування web-сервера > PHP > вибираємо потрібну версію PHP, натискаємо кнопку «Розширення». Далі шукаємо потрібне розширення та вмикаємо або відключаємо його відповідними кнопками.

Як налаштувати змінні PHP?

Через ISPmanager: Налаштування web-сервера > PHP > вибираємо потрібну версію PHP, натискаємо кнопку «Налаштування». Далі шукаємо та редагуємо потрібні змінні.

Як увімкнути PHP-акселератор?

Рекомендую використовувати Zend OPcache, який входить у стандартне постачання PHP, починаючи з версії 5.5. Іноді він увімкнений за замовчуванням, іноді ні. Активується OPcache через ISPmanager: Налаштування web-сервера > PHP > вибираємо потрібну версію PHP, натискаємо кнопку «Розширення». Далі шукаємо розширення opcache і включаємо його відповідною кнопкою. Налаштування акселератора здійснюється через змінні PHP (як їх змінювати, розглянуто в попередньому пункті) і залежить від конфігурації сервера, використовуваного програмного забезпечення та завдань.

Як встановити та ввімкнути nginx?

Через ISPmanager: Налаштування > Можливості > вибираємо «Веб-сервер (WWW)», натискаємо кнопку «Змінити». Ставимо галочку навпроти "Nginx", натискаємо "Застосувати зміни".

Як налаштувати роботу сайту з HTTPS?

Для роботи сайту по HTTPS потрібний SSL-сертифікат. Тут можливі такі варіанти:

1) Якщо ви бажаєте придбати платний сертифікат, це можна зробити через панель хостера в розділі «Ліцензії та сертифікати». Після випуску сертифіката він буде автоматично встановлений на сервер, після чого сайт стане доступним HTTPS.

2) Якщо ви вже маєте сертифікат, його потрібно встановити через ISPmanager: Налаштування веб-сервера > SSL-сертифікати > Кнопка «Створити», тип SSL-сертифіката: існуючий. Заповнюємо поля форми, натискаємо "Завершити". Після цього переходимо до розділу Домени > WWW-домени, вибираємо домен, натискаємо кнопку «Змінити», у полі «SSL-сертифікат» вибираємо встановлений сертифікат. Ставимо галочки навпроти пунктів «Захищене з'єднання (SSL)», «HSTS» і, якщо потрібно, «Передати HTTP-запити в HTTPS».

3) Ви можете встановити безкоштовний сертифікат Let's Encrypt. Для цього заходимо до ISPmanager: Інтеграція > Модулі, де встановлюємо модуль Let's Encrypt. Після цього в розділі Налаштування веб-сервера > SSL-сертифікати з'явиться кнопка Let's Encrypt, натиснувши на яку ви можете ініціювати випуск сертифіката для потрібного домену. Після того, як сертифікат випущено, його буде автоматично встановлено на сервер. Продовження сертифіката відбувається автоматично, втручання користувача не потрібне.

Як налаштувати кешування та gzip-стиск для файлів сайту?

Через ISPmanager: Домени > WWW-домени, вибираємо домен, натискаємо кнопку «Змінити», прокручуємо сторінку вниз до розділу «Оптимізація WWW-домена». У ньому ставимо галочки навпроти «Налаштувати стиск» та «Налаштувати кешування». Рекомендований за умовчанням рівень стиснення – 5, період кешування – 7 днів.

Замість ув'язнення

У цій статті я спробував розглянути основні моменти, пов'язані з первинним настроюванням VDS. Очевидно, що це лише верхівка айсберга, але я й не ставив собі завдання написати вичерпне посібник з цієї теми. Швидше мені хотілося зробити коротку пам'ятку, куди зручно підглядати на початкових етапах освоєння сервера. А далі — гугл вам на допомогу.

Оновляшечки! Цей набіршпор для розвороту хостингу оновлено 28.03.2015, тепер можна розгорнути відносно свіжий хостинг під Ubuntu 14.04LTS.

Вчора зауважив, що Hetzner нещодавно «оновив тарифи» і викотив конфігурацію VX18 лише за 18 євро з VAT (для нерезидентів по 15.8 євро). За характеристиками - всього в 2 рази більше, ніж на моєму старому тарифі VQ19, за якістю нічого не ясно, припускаю, що таке ж десктопне залізо. Саппорт не зізнається, каже «просто нові тарифи, треба ж нам щось пропонувати». Вирішив спробувати. Прогнав unixbench на старому сервері і на новому , залишився поки задоволений і почав перенесення сайтів. За одне вирішив виправити ці шпаргалки для налаштування хостингу. (До речі, згодом показники сервера погіршаться при «заселенні» сервера або зміни ноди на більш мляву, як було у мене з VQ19, для порівняння — напрочуд бадьоріше за VQ19).

Завдання
Розгорнути під Ubuntu 14.04 LTSлегкий віртуальний вебхостинг для роботи в nginx, PHP-5.5, MySQL, а також підняти поштовий сервер Dovecot2/Postfixта налаштувати пошту. Apache я розгортати не буду, бо не бачу в ньому сенсу - під мої потреби nginx підходить анітрохи не гірше, а оперативну пам'ятьвитрачає значно менше. Неймсервер використовуватиметься хетзнерівський як більш стабільний.

Формат викладу
Нижче ви можете побачити список дій, які будуть озвучені на наступних постах. Коли цей момент трапляється - ця сторінка буде оновлена ​​і стане посиланням 🙂

  • Встановлює засоби моніторингу сервера Munin.
  • Резервне копіювання даних.
  • Скрипти, що спрощують додавання нового сайту.

Увага! Я не материй адмін і все викладене може бути оскаржене професіоналами в будь-якому вигляді. Радий усіляким поправкам, коментарям та порадам.

Купівля хостингу у hetzner.de

У цій справі я вам не помічник, т.к. впорається з цим завданням будь-хто. Заходимо сюди, вибираємо тариф, що сподобався, тиснемо «Order now». Будете серед реклами на https://robot.your-server.de/order. Далі вибираєте наново свій продукт - у мене це був "vServer VX18" і тиснете "Order product". На наступній сторінці вибираєте Ubuntu 14.04 LTS 64bit minimal, архітектура 64біт, число серверів 1. Усі мої виклади далі йдуть для Ubuntu 14.04 LTS 64bit. Далі тиснемо "Add to shopping cart". На наступній сторінці перевіряємо чи ми замовили і тиснемо «Checkout». Далі якщо маємо аккаунт у роботі – логінімся, якщо не маємо – заповнюємо всі поля та реєструємось. Заповнювати треба на англійською(П.І.Б. транслітом). Необхідно, щоб ваше П.І.Б. збіглося з транслітом на вашій кредитній картці, якою ви платитимете. За натисканням "Create new account". Десь далі вас запитають про кредитку… Втім, все як у звичайному інтернет-магазині.

Який тарифний план вибрати?

Зараз користуюся тарифом VX18 за 18€ (vServer VX18), т.к. потреби поступово зростають, але до реального сервера поки що не дотягують. Даний тариф дозволяє досить бадьоро тягнути десяток-другий не навантажених сайтів. Якщо ви хочете поки спробувати щось простіше - можна спочатку взяти тариф VX6, але на ньому зовсім мало пам'яті, архітектуру треба буде брати 32bit. Також не варто забувати, що у hetzner не можна на льоту змінити тариф — треба купувати ще один сервер і переносити все на нього.

Як бути з nameserver?

А дуже просто. Свій піднімати накладно, треба 2 IP, навантаження на сервер всякими ботами нам теж не потрібне, тому скористаємося неймсерверами самого hetzner. Щоправда, послуга ця платна, коштує 0.5€ на рік за 1 домен. Цю послугу краще підключити відразу, як тільки вам поставлять сервер (про це ви повідомите Email), т.к. підключається вона не швидше за сервер (тобто ручками через операторів). Як я вже описував.

Підготовка оточення сервера.

Ну ось нам уже й сервер увімкнули, SSH дали - можемо користуватися. Насамперед оновимо встановлений софт:

Sudo apt-get update sudo apt-get upgrade

Якщо з'явилися помилки у стилі blah blah blah …Hash Sum mismatch, виконуємо наступне:

Sudo rm /var/lib/apt/lists/* sudo apt-get update sudo apt-get upgrade

Поставимо Midnight Comander (щось типу FAR) для запуску mc.

Sudo apt-get install mc


Тепер пропишемо ім'я хоста.

Sudo echo "koteika" > /etc/hostname sudo hostname -F /etc/hostname

Пропишемо fqdn (потрібний для пошти), правимо /etc/hostsщоб вийшло приблизно так:

### Hetzner Online AG installimage # nameserver config # IPv4 127.0.0.1 localhost.localdomain localhost 78.47.88.87 koteika.koteika.ru koteika # # IPv6::1 ip6-localhost ip6-loopback fe00::0 ip6 0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts 2a01:4f8:d16:4346::2 koteika.koteika.ru koteika

Вся краса в рядках 78.47.88.87 koteika.ru koteikaі 2a01:4f8:d16:4346::2 koteika.koteika.ru koteika, де перше значення – IP вашого сервера, друге – доменне ім'я сервера у форматі (FQDN) та третє – ім'я хоста.

Якщо все правильно зробили, то подивитися результати можна так:

Hostname hostname -f

P.S. Файли краще редагувати в чомусь простому типі, але прості зміни можна робити і в mc. Надалі нам доведеться правити дуже багато конфіг, т.ч. vi краще освоїти.

Якщо вам сподобалася моя стаття, будь ласка, не полінуйтеся натиснути будь-яку кнопку нижче, або кинути посилання на статтю у свій блог або форум. Завжди радий відповісти на ваші запитання у коментарях. Дякую 🙂