• Настройка сервера с нуля на примере VPS от Hetzner’а. Правильная настройка VDS сервера Как узнать размер отдельной папки

    04.09.2020

    Осуществляется с помощью командной строки. Для этих целей удобнее всего использовать бесплатную программу 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; error_page 500 502 503 504 /50x.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.


    В этой статье мы поэтапно расскажем о том, как создать виртуальный сервер (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 другую ОС, просто создайте ее ISO-образ и отправьте его нашей техподдержке.

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

    При этом в дальнейшем вы сможете менять конфигурацию прямо в панели управления.

    После выбора ОС необходимо выбрать центр обработки данных (ЦОД) , в котором будет размещаться ваш виртуальный сервер. Наши ЦОД-ы расположены в Беларуси (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.

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

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

    Ситуация самая жизненная. Интернет-магазин, размещенный на шаред-хостинге, после запуска начал получать клиентов, но появились пожелания к функциональности, и разработчики активно занялись доработкой сайта. Выяснилось, что, когда в этом участвует несколько человек, постоянно копировать файлы через 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_RU 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_tokens off; server_names_hash_bucket_size 64; reset_timedout_connection on; client_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 text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/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$ { include /etc/nginx/fastcgi_params; # fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } # Кешируем картинки и txt/XML/JS/CSS. Можно убрать ненужное или что-то добавить location ~* ^.+\.(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

    C MySQL все очень просто. Вводим

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

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

    Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!

    В данном материале я расскажу, как начать работу с 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. Очевидно, что это только верхушка айсберга, но я и не ставил перед собой задачи написать исчерпывающее руководство по данной теме. Скорее мне хотелось сделать краткую памятку, куда удобно подглядывать на начальных этапах освоения сервера. А дальше — гугл вам в помощь.

    В этой статье я расскажу как настроить свой VDS (виртуальный выделенный сервер) или просто выделенный сервер для запуска на нем своего сайта или множества сайтов. Сразу же напишу оговорки, которые стоит знать. Данный метод настройки подойдет для операционных систем Debian 7 minimal или Ubuntu 12 TLS minimal . В случае если у Вас будут более новые версии ОС, то придется исправлять имена некоторых пакетов на новые. Следующим важным моментом будет отсутствие панели управления хостингом, для новичков конечно же это может быть шоком, но фактически она и не понадобится, так как обычно на сервере после запуска сайта его можно и не трогать в течении длительного времени.
    Сразу же приведу пример расчета ВДС к посещаемости сайта. У меня есть сайт с посещаемостью 18 тысяч человек в день, он отлично работает на VDS с 2 гигами оператиной памяти и 2 выделенными ядрами процессора по цене всего в 6 баксов. Вариант данного сервера можно посмотреть . Там же я брал сервер для данного мануала.

    Итак. Будем считать что я настраиваю сервер для сайта с доменом сайт и форумом на его поддомене forum.сайт . Т.е. когда Вы будете настраивать под себя свой VDS по данному мануалу, то просто замените сайт на свой домен.

    Допустим у Вас уже есть сервер и теперь мы подключаемся к нему через протокол SSH с помощью программы PUTTY . После запуска переходим в меню Translation и в списке выбираем кодировку UTF-8 .


    Далее слева сверху нажимает на Session . Справа указываем IP адрес сервера , который указан у Вас в письме. Порт 22 оставляем по умолчанию. Можно сохранить настройки, указав имя данному соединению в окне ниже и нажать на кнопку Save . Чтобы подключиться жмем Open .


    Далее перед нами появляется консоль в которой нужно ввести имя (обычно это root) и пароль. Обратите внимание что при вводе пароля ничего показываться не будет. Просто вводим пароль и нажимаем энтер.
    Открывается консоль работы с сервером. Она выглядит как на картинке ниже. Если у Вас снова просят ввести пароль, но Вы не верно вводите либо имя пользователя, либо - пароль.

    (cкачиваний: 1758)

    Будет видео в котором я покажу пример использования данного файла в деле.
    После этого Ваш веб сервер в целом готов к работе, можно конечно поправить настройки базы данных, но в целом все должно работать и так.
    Для защиты протокола SSH, можно изменить порт с 22 на любой свободный или поставить пакет fail2ban , он будет защищать порт от желающих получить пароль перебором:
    apt-get install fail2ban
    В целом настройки fail2ban не требует, базовых параметров достаточно, но желающие могут покопаться в настройках и выставить нужное время бана, количество попыток подбора пароля до бана и все остальное.
    Если по статье возникают вопросы - пишите их в комментариях к данной статье.

    Похожие статьи