Настройка VDS сервера

Настройка VDS сервера Хостинг

Начало работы с виртуальным сервером vps — ruvds

Мою банковскую карточку не приняли для оплаты

Они такие, да. Даже Visa Classic им не нравится. Оплатите через PayPal, это не трудно.

Подготавливаем проект

Возьмите простой проект, типа

, без mongodb и прочего. Проверьте, что в проекте есть самое главное: «package.json», «Procfile» и какой-нибудь «app.js». «Package.json» должен выглядеть примерно так:

{
   "name": "dokku-demo-application",
   "version": "1.0.0",
   "engines": {
       "node": ">=0.10.*",
       "npm": ">=1.3"
   },
   "dependencies": {
       "express": "~3.0"
   }
}


Содержание файла

package.json

важно, так как по нему dokku будет устанавливать модули для приложения. А

Procfile

должен выглядеть так:

web: node server.js

Инициализируем в папке проекта репозиторий (если его не было), добавляем все файлы и коммитим:

$ git init && git add -A && git commit -m "Initial commit"


Теперь наш проект готов к разворачиванию на сервере.

Регистрация на DigitalOcean

Первым делом регистрируемся на сайте

. Здесь мы купим VPS — виртуальный сервер. После удачной регистрации и входа в свою админку жмем на большую зеленую кнопку «Create» и нам предложат активировать свой аккаунт, внеся $5 долларов. Ниже на странице есть место для указания счастливого купона на $10, вводите

OMGSSD10

или поищите свежий купон. Так как моя банковская карточка не подошла хостеру, я оплатил пейпалом и у меня на счету оказалось $15. Этого должно хватить на 3 месяца.

Заливаем и запускаем проект


Деплоить приложение будем с помощью команды

git push

. И для этого добавим ссылку на удаленный репозиторий нашего дроплета:

Создал дроплет, но по IP адресу нет страницы настройки dokku

Значит, у DigitalOcean что-то пошло не так. Надо зайти на страницу управления дроплетом, и на вкладке Destroy/Rebuild:

Тогда, после перестройки, страница настройки dokku должна быть видна по IP-адресу. Если нет — попросите помощи у DigitalOcean.

Не могу получить доступ к дроплету ни по паролю, ни по SSH

  1. Наверное, вы как-то пропустили шаг настройки dokku, или dokky создался не правильно.
  2. Проверьте, если доступна страница настройки dokku по IP адресу дроплета, то вернитесь к шагу 4 создания VPS.
  3. Если страницы настроек нет, тогда попробуйте сбросить пароль и повторить попытку доступа через терминал. Если даже в этом случае доступ по паролю будет неудачным, тогда переустановите дроплет, как описано в предыдущем пункте.

Создаем дроплет


Теперь настало время купить виртуальный сервер. Нажимаем на большую зеленую кнопку «Create» и вводим следующую информацию:

Жмем «Create Droplet» и ждем 2-10 минут. В результате мы увидим панель управления дроплетом, и там будет виден его IP-адрес.

Выбранный образ помимо операционной системы Ubuntu 14.04 содержит самое главное: Dokku. Это готовая система для хостинга node.js-проектов, очень похожая на Heroku. Использование образа с предустановленным Dokku избавит нас от необходимости устанавливать и настраивать систему для хостинга Node.js.

Настройка Дроплета и DNS


Теперь нужно настроить новосозданный сервер. Зайдите в браузере по IP-адресу дроплета и вы увидете экран настройки. Если такой страницы нет, смотрите что делать в конце статьи.

Droplet setup page

Здесь вы должны убедится, что поле «Public Key» заполнено. Если нет — укажите свой public key из недавно сгенерированного ключа. Однако практика показала, что лучше вообще удалить такой дроплет и создать новый, правильно указав SSH-ключ.

Если у вас нет доменного имени, то оставьте все, как есть, жмите «Finish setup» и переходите к следующему пункту. Ваше приложение будет доступно примерно так: «19.19.197.19:46667», по IP адресу и номеру порта. Если вас это не устраивает — срочно купите доменное имя. В любом случае, настроить доменное имя можно будет позже, о чем я расскажу в конце.

Я не знаю пароля от дроплета

Если у вас нет пароля, зайдите на страницу управления дроплетом, вкладка «Access» и сделайте reset пароля. Тогда на почту придет новый пароль.

Настраиваем использование SSH


Давайте попробуем соединиться с нашим новым сервером. Чтобы получить доступ дроплету через SSH-ключ, нужно еще одно маленькое действие. Откройте терминал и передите в папку с ssh-ключами:

$ cd ~/.ssh/

Если у вас еще нет файла «config» в этой папке (проверка —

$ ls

), то его необходимо создать:

$ touch config


Теперь открываем config(

$ open config

) и записываем в него следующие данные:

Host YOUR.DROPLET.IP.ADDRESS
    IdentityFile ~/.ssh/id_rsa_digitalocean_dropletname

Где в первой строчке IP адрес или доменное имя, на второй строчке — имя созданного ssh-ключа для этого дроплета.

Проверяем соединение:

$ ssh root@YOUR.DROPLET.IP.ADDRESS

Где после «@» надо указать или доменное имя, или IP.

Если вы пропустили создание SSH-ключа, войти можно по паролю, который пришел к вам на почту. Для этого выполните ту же команду:

$ ssh root@YOUR.DROPLET.IP.ADDRESS

и на вопрос о продолжении соединения напишите «yes». После этого введите пароль.

Если вы увидели приветственный экран, значит все хорошо. Закроем соединение командой exit и перейдем к следующему пункту.

Проект не запускается по указанной ссылке

Если настройки dokku верны, такая ситуация возможна, если приложение запустилось с ошибкой и было закрыто. Зайтиде по ssh в дроплет и проверьте логи:

$ dokku logs <app_name>

Возможно, ошибка будет понятна. Или же вы забыли запустить ваш проект после push’а:

$ cd /home/dokku/YOUR-APP-NAME
$ dokku run YOUR-APP-NAME node app.js

Я пропустил создание SSH, и теперь хочу сделать авторизацию по SSH-ключу

Я пытался создать новый дроплет без указания ssh-ключа на странице создания дроплета, но на странице настроек dokku все равно просят ввести паблик-ключ. После этого я принял некоторые действия, но все равно зайти по ssh-ключу у меня не вышло, только пароль.

Как добавить доменное имя к уже существующему дроплету

Это делается совсем не трудно, всего в несколько шагов. В настройках DNS вашего доменного имени указать настройки:

Аутентификация с использованием ssh-ключей

Авторизация пользователей при помощи SSH-ключей может значительно повысить уровень безопасности вашего VPS. Если вы планируете использовать такой вариант аутентификации, придётся выполнить несколько несложных действий.

Сначала необходимо сгенерировать этот SSH-ключ. Для чего на локальной рабочей станции (не на сервере) в командной строке нужно набрать:

ssh-keygen

В процессе генерации ключа вы можете изменить имя файла ключа и его каталог, а также его пароль passphrase, а можете оставить эти настройки по умолчанию:

Далее, созданный ключ необходимо скопировать на сервер. Для чего нужно:

Подключиться к вашему VPS по SSH:

Брандмауэр

Для управления межсетевым экраном в операционных системах семейства Linux часто используется утилита iptables. Упрощённым её интерфейсом для настройки брандмауэра является Uncomplicated Firewall или UFW.

Для открытия доступа к серверу со стороны какого-либо приложения, необходимо выдать разрешение этому приложению на доступ, зарегистрировав его в UFW. Список приложений знакомых утилите UFW можно посмотреть набрав команду:

$ sudo ufw app list

Чтобы разрешить подключение к системе какому-нибудь приложению или протоколу, например, SSH, используйте инструкцию:

$ sudo ufw allow OpenSSH

Если брандмауэр отключен, его нужно включить:

$ sudo ufw enable

И проверить его статус:

$ sudo ufw status

Теперь вы можете настроить данный межсетевой экран так, чтобы он ограничивал доступ к вашему VPS в соответствии с вашими требованиями. Например, вы можете разрешить доступ к нему с одного определённого IP-адреса:

$ sudo ufw allow from XXX.XXX.XXX.XXX

Или из определённой подсети:

$ sudo ufw allow from XXX.XXX.XXX.0/24

Так же есть возможность ограничить подключения к серверу определённым IP-адресом, при этом разрешив подключение только к определённому порту. Так например, чтобы открыть доступ только к порту 22, то есть только подключение по SSH, используйте команду:

$ sudo ufw allow from XXX.XXX.XXX.XXX to any port 22

Если же вы не хотите ограничиваться подключениями только с определённых адресов, вы можете защитить вашу систему установив запрет на соединения с IP-адресов, с которых происходит больше пяти попыток подключиться за последние полминуты. Запустить такую схему защиты можно командой:

$ sudo ufw limit ssh

Деплоим приложение


Сервер готов, теперь пришла очередь развернуть тестовое приложение и проверить его работу.

Настройка vds сервера

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

Альтернативой виртуального хостинга является использование VDSVPS (Virtual DedicatedPrivate Server) — это, виртуальный выделенный или приватный сервер, который предоставляется хостинг провайдером в аренду заказчику.Чтобы не вводить в заблуждение, сразу отмечу, что разницы между аббревиатурами VPS и VDS нет никакой. Дело в том, что два этих понятия появились практически одновременно и параллельно развивались.

Что же такое VDS? Говоря простым языком, поставщик услуг на своем оборудовании, с помощью средств виртуализации разворачивает несколько виртуальных (программных) серверов. С точки зрения функциональности такой сервер ничем не отличается от физического, на него также устанавливаются операционная система и программное обеспечение, он также расположен в сети и управляется, как и остальные ПК, средствами удаленного администрирования. При этом данный сервер находится на удаленной площадке провайдера, которая защищена от сбоев и оптимизирована под работу 24/7/365. В свою очередь хостинг провайдер берет на себя все обязательства по обслуживанию и сопровождению оборудования и системы виртуализации. Но соответственно цену на эту услугу несколько выше чем на виртуальный хостинг.

Полезные утилиты

Стоит упомянуть некоторые полезные утилиты, которыми я пользуюсь в администрировании, и которые могут пригодиться вам.

WP-CLI

Это командная утилита для администрирования WordPress из терминальной консоли Linux. Умеет очень много, бэкапить, копировать данные в базе данных, отключать и включать плагины и так далее. Очень полезно, в случаях если у вас конфликт плагинов, или вы где-то накосорезили и админка сайта у вас отвалилась. Подробнее тут.

Multitail

Программа для чтения логов с продвинутым выводом. Выводит содержимое лог-файлов и позволяет наблюдать за их изменениями в реальном времени с подсветкой синтаксиса. Смотрим здесь.

Htop

Полный аналог «Диспетчера задач» из Windows для терминальной консоли. Очень полезная вещь для мониторинга процессов, памяти, загрузки и управления процессами. Ставиться командой:

sudo apt-get install htop

И вызывается (кто бы думал) командой:

htop

Let’s Encrypt

Пользователь с привилегиями администратора

При установке операционной системы вы получаете доступ к ней при помощи учётной записи, имеющей права суперпользователя. Имя этого пользователя – root, и он в вашей системе, что называется, “может всё”. Регулярно производить запуск инструкций, зарегистрировавшись в системе учётной записью root, весьма неосмотрительно с точки зрения безопасности. Именно поэтому, необходимо создать учётную запись с ограниченными правами для её использования в повседневной работе.

Для создания нового пользователя введите команду:

Проблемы и их устранение

Я сам разбирался с настройкой такого хостинга более суток, и набил несколько шишек. И чтобы вы могли съэкономить свое время, привожу здесь несколько возможных проблем и пути их решения.

Чек лист по настройке vps/vds, выделенного сервера linux с нуля [айти бубен]

Эту инструкцию я просто скопировал у самого адекватного (как по цене, так и уровню техподдержки) украинского хостинг провайдера СХОСТ.

При выборе выделенного сервера и VPS/VDS очень важно обратить внимание на процессор. Не все знают, что большие показатели CPU и количества ядер не всегда гарантируют большую мощность. В частности, более современный процессор 1.6 ГГц может ощутимо превосходить процессор 4 ГГц.

Существует проверенный способ оценить реальную мощность практически любого процессора до покупки выделенного сервера/ВПС:

  1. Выберите процессоры, которые нужно сравнить.

  2. Изучите сравнительную таблицу.

Рассмотрим, как работает сервис на примере. Мы сравнили два процессора – Intel Xeon X5675 @ 3.07GHz (процессор А) и Intel Xeon E5-2680 v2 @ 2.80GHz (процессор В).

При том что мощность (поле Clockspeed) процессора А равна 3.1 ГГц, а мощность процессора В – 2.8 ГГц, рейтинг одного ядра (поле Single Thread Rating) процессора В составляет 1826, а процессора А – лишь 1392. Что касается суммарного рейтинга (поле CPU Mark), то и здесь процессор В показал лучшие результаты: 15904 против 8124.
Настройка VDS сервера

Вывод: у процессора 2.8 ГГц каждое ядро почти на 50% мощнее, чем у процессора 3.1 ГГц. Следовательно, так как ядер больше, процессор В почти в два раза сильнее, чем процессор В.

Не помещает, сразу после покупки VPS замерить скорость интернета, которую вам предоставил хостинг провайдер. Скорость можно замерить разными способами, например утилитой iperf, но самым простым способом будет использование приложения Speedtest CLI.

Speedtest CLI позволяет использовать глобальную серверную сеть Speedtest с помощью командной строки. Speedtest CLI позволяет измерять такие показатели интернет-соединения, как скорость загрузки и передачи, потеря пакетов и задержка, без использования веб-браузера.

Установка утилита speedtest в Debian/Ubuntu (скачать установочные скрипты):

curl -s https://install.speedtest.net/app/cli/install.deb.sh |bash
apt install speedtest-cli

Установка утилита speedtest в Centos:

curl -s https://install.speedtest.net/app/cli/install.rpm.sh | sudo bash
yum install speedtest

Запускаем без всяких параметров, обычно этого достаточно. В более новых версиях лучше использовать дополнительный ключ, auto-binary-bytes который будет показывать скорость в kiB/s, MiB/s, GiB/s.

speedtest -u auto-binary-bytes
# speedtest
Retrieving speedtest.net configuration...
Testing from JSC IOT (212.109.219.242)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by INETCOM LLC (Moscow)[1.61 km]: 2.945 ms
Testing download speed..............
Download: 97.56 Mbit/s
Testing upload speed................
Upload: 109.68 Mbit/s

Как видим мой VPS сервер подключен в 100 Mbit/s порт. Если это соответствует заявленной хостером, вам при покупке виртуального сервера, скорости — значит все ОК.

К слову, чтобы увидеть ближайшие сервера Speedtest введите команду:

# speedtest -L
Closest servers:
 
    ID  Name                           Location             Country
==============================================================================
 22774  DediPath                       Secaucus, NJ         United States
   982  Interserver, inc               Secaucus, NJ         United States
 22069  TeleBermuda International Limited New York, NY         United States

Читайте также: Что такое тест скорости Интернета? Единицы измерения скорости интернета

Обычно я использую на серверах Debian или Ubuntu, поэтому команды будут приводиться для этих систем. Для остальных ОС буду приводить ссылки, если есть различия.

На начальном этапе у нас есть свежеустановленная операционная система на VPS/VDS и доступ по SSH. Логинимся на сервер под пользователем root.

1) Обновление операционной системы. Для Debian, Ubuntu рекомендую использовать встроенные менеджер пакетов APT, альтернатива Aptitude, dpkg.

# apt update
# apt list --upgradable
# apt upgrade

Добавим системные утилиты:

# apt install lsb-release htop net-tools

2) Настройка переменных локализации в Linux удаление локалей и локализаций, проверка языка консоли вашего VDS.

3) Настройка времени и часового пояса при помощи tzdata.

4) Имя сервера проверьте командой hostname с ключом f. Вы должны увидеть имя в формате FQDN (без точки в конце), например

# hostname -f
vps100.mirax-hotel.com

Если вы хотите установить почтовый сервер также проверьте обратную запись DNS. В самом простом случае достаточно чтобы ваш VPS был доступен по доменному имени.

5) Настройка SSH доступа, для повышения безопасности и удобства использования вашего сервера — дадут вам прочную основу для последующих действий.

6) Настройка брандмауэра (firewall, файрвол) в разных дистрибутивах отличается или же используются разные программные надстройки на ними:

Оцените статью
Хостинги