Как сделать сервер на vds

Настраиваем свой первый VDS сервер в роли веб-сервера

Так уж сложилось, что последнее время пришлось достаточно часто менять VDS провайдеров, и каждый раз приходится заново настраивать систему, поэтому решил написать краткий конспект по настройке. Все нижеописанное корректно работает на ОС Linux Ubuntu server 12.04 LTS. В этой статье я опишу как установить и произвести первичную настройку nginx+apache2, eaccelerator, memcached, fure-ftpd, php, mysql, phpmyadmin а также панели управления игровыми серверами — open game panel.

Начну с краткого описания некоторых терминов.

VDS — он же VPS — Virtual Dedicated(Private) сервер — виртуальная машина, сервер — нужен он, когда обычного хостинга мало, а выделенный сервер дорого. На современном рынке провайдеров, которые предоставляют услуги по аренде VDS великое множество, и у каждого есть свои плюсы и минусы, но их мы обсуждать не будем.
Тип виртуализации — говоря простым языком это то, каким способом организована виртуальная машина. В настоящее время наиболее распространены OpenVZ и XEN. Плюс OpenVZ — низкая стоимость, так как в этом типе виртуализации для всех виртуальных машин запущенных на аппаратном сервере используется специально модифицированное ядро хост-системы. Минус этого типа виртуализации — невозможно менять параметры ядра ОС, также практически всегда присутствует оверселлинг (об это позже). А для серьезных проектов лучше использовать XEN или KVM виртуализацию — там гостевая ОС даже и не знает что она установлена на виртуальную машину, и с ОС можно делать практически все, чего душа пожелает, особенно на XEN-HWM и KVM.
Оверселлинг — провайдеры продают больше ресурсов, чем есть на самом деле. Работает это за счет того что клиенты редко используют ресурсы по тарифу на 100 процентов, но у недобросовестных провайдеров с завышенным коэффициентом оверселлинга могут наблюдаться проблемы, такие как крайне медленная работа машины или невыполнение скриптов по причине нехватки памяти. Возвращаясь к типам виртуализации на XEN и KVM оверселлинг практически невозможен технически.

Выбор хостинг-провайдера

Итак, вы решили купить услугу VDS. Как же следует выбирать провайдера. Начать следует с географии — где территориально будет располагаться ваш сервер.

Германия — плюсы: дешевые тарифы, быстрые каналы, безлимитный трафик, минусы — достаточно большая задержка до России — примерно 80мс, очень серьезно относятся к торрент трекерам, торрент клиентам, варезу и т.п.
Голландия, Канада — то же самое то и Германия, но немного дороже, но основной плюс — законодательство которое лояльнее относится к различным видам хранимой и передаваемой информации, за которую у нас по голове не гладят.
США — в большинстве своем считают трафик, большие пинги до России — в общем, не самый лучший вариант.
Россия, Украина — минимальные задержки до Российской аудитории, в большинстве случаев псевдобезлимитный трафик (снижение скорости после определенного порога или необходимость соблюдать пропорции входящего\исходящего Российского\зарубежного трафика), не самые надежные дата центры — практически в каждом периодически случаются массовые отключения сервиса на несколько часов, несмотря на три независимых электроввода, резервирование каналов интернет и дизель-генераторы.
Выбор типа виртуализации
Если позволяют ресурсы, то это однозначно KVM или XEN. Но не у всех провайдеров доступны эти типы виртуальных машин, да и денег оно стоит немного больших, нежели OpenVZ. Поэтому если ваш проект это некий сайт\два\десять с невысокой посещаемостью (примерно до 10000 уникальных хостов в день) и\или какой-нибудь ICQ чат, то OpenVZ для вас будет вполне достаточно.
Ну а если требуется выполнять какие-либо более ресурсоемкие задачи, такие как размещение игровых серверов или видеочаты лучше выбрать XEN | KVM, также эти типы виртуализации стоит выбирать, если есть необходимость создания VPN-туннелей. Здесь VPN поднять проще, чем на OpenVZ.

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

Пересобираем ядро

Если вы выбрали OpenVZ, то можете смело пропускать эту часть статьи.
Данная процедура не даст ощутимого прироста производительности, и нужна эта процедура только для саморазвития и «потренироваться на будущее».
качаем исходники последней стабильной версии ядра с сайта kernel.org. На данный момент это версия 3.6.7

• Устанавливаем необходимые для компиляции пакеты

• заходим в папку с исходниками и генерируем конфигурацию ядра. В нашем случае все будет проходить автоматически — в ядро будут включены только те модули, которые необходимы текущему железу. Если же вам хочется вручную сконфигурировать ядро, то прошу гуглить по запросу make config или make menugonfig.

• запускаем компиляцию ядра — процесс не быстрый идет от 15 минут до нескольких часов.

• поднимаемся на каталог выше и устанавливаем пакеты

• Перезагружаемся и проверяем, что ядро встало.

• Вот и все, в вашей системе новое ядро.

Меняем часовой пояс и имя ПК

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

• Появится псевдографический интерфейс в котором мы выберем наше расположение.
• Если вдруг (ни разу еще такого не видел) есть расхождения по дате\времени, то выполним следующую команду, в которую подставим текущие дату и время

• Чтобы изменить имя сервера, откроем файл /etc/hostname и заменим содержимое на желаемое имя сервера.

Устанавливаем nginx c бэкэндом apache2, PHP, MySQL, phpmyadmin

В этой части статьи мы установим и настроим веб-сервер, рассчитанный на большое количество соединений.

• Сначала установим стандартный «детский» набор пакетов для веб сервера.

• Нас будут просить задать пароль от MySQL, потом спросят чем обрабатывать phpmyadmin — нужно ответить то апачем, и спросят пароль от MySQL для нужд phpmyadmin
• На момент написания статьи phpmyadmin автоматически не прописывался в конфигурации apache2, вследствие чего по адресу адрес_сайта.зона/phpmyadmin мы видим ошибку 404, поэтому открываем файл /etc/apache2/apache2.conf и в конец дописываем строчку

• Включаем модули apache2

• Рисуем дефолтный конфиг апача. Для этого открываем /etc/apache2/sites-available/default стираем в этом файле все и пишем следующее:

• То, что указан восьмисотый порт — это не ошибка, на стандартном для http восьмидесятом порту будет висеть nginx. Параметр DocumentRoot по неизвестным мне причинам большинство советуют указывать /var/www/…, на мой же взгляд логичнее держать важные данные в /home — проще будет настраивать резервное копирование.
• Правим файл /etc/apache2/ports.conf

• Копируем файл /etc/apache2/sites-available/default в /etc/apache2/sites-enabled/адрес_сайта
• Директории и файлы с конфигами лучше называть по адресам сайтов т.к. в будущем это упростит поиск нужных конфигов\директорий, например /home/www/tweedle.ru /etc/apache2/sites-enabled/tweedle.ru
• Правим файл /etc/apache2/apache2.conf — меняем значение параметра MaxClients на 20, сделать это надо в двух местах.
• Прописываем репозиторий nginx, для этого откроем файл /etc/apt/sources.list и допишем в конец

• Устанавливаем nginx и apache2-mod-rpaf

• Далее настроим nginx, для этого открываем файл /usr/local/etc/nginx/nginx.conf и заменяем содержимое следующим

• в том случае если роль веб-сервера является основной ролью вашего сервера и\или сайты имеют большую посещаемость значение worker_processes выставляем равным количеству доступных ядер ЦП, в противном случае одного процесса будет вполне достаточно
• создаем конфиг для нашего сайта /etc/nginx/sites-enabled/адрес_сайта.зона

• устанавливаем memcached, никаких дополнительных настроек для него не требуеся

• теперь, прежде чем мы скомпилируем eAccelerator, поправим один баг в коде, из за которого возникают всяческие проблемы, например перестает работать авторизация в phpmyadmin. Откроем файл eaccelerator.c, строка 867. Заменим if (php_check_open_basedir(realname TSRMLS_CC)) < на if (php_check_open_basedir(p->realfilename TSRMLS_CC)) < Сохраняемся и продолжаем…

• Создаем папку для кэша, и даем на нее права

• Настраиваем php для работы с eaccelerator, для этого откроем файл /etc/php5/apache2/php.ini и допишем сверху

• Перезапускаем сервисы, убедившись что в /home/www/имя_сайта лежит сайт

• Теперь мы имеем достаточно шустрый веб-сервер, который потребляет меньше 100Мб оперативной памяти. Todo: Есть один недочет – phpmyadmin, который доступен по адресу адрес_сайта.зона/phpmyadmin отображается некрасиво(без картинок), временное решение, которое я могу предложить – открывать phpmyadmin по адресу адрес_сайта.зона:800/phpmyadmin

Установка FTP сервера pure-ftpd с поддержкой MySQL

ФТП сервер пригодиться нам для простого и быстрого и удобного переноса информации с сервера и на сервер.
• Устанавливаем pure-ftpd с поддержкой mysql

• Создаем группу для пользователей ftp и пользователя в ней – это делается для того чтобы впоследствии было удобней следить за тем, что происходит на вашем сервере.

• Создадим базу данных в MySQL для pure-ftpd. Это можно сделать и через phpmyadmin, но великим и могучим копипастом это быстрее сделать в консоли

• Создадим таблицу, в которой будут храниться учетные записи фтп.

• Теперь настроим pure-ftpd, для этого откроем файл /etc/pure-ftpd/db/mysql.conf и сделаем его содержание таким:

• Теперь сделаем так, чтобы домашняя директория пользователя автоматически создавалась если она не существует

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

• И наконец отключим проверку хостнеймов пользователей – это значительно ускорит процесс авторизации и немного сократит количество трафика.

• Перезапустим сервис чтобы применить настройки

• Теперь создадим пользователя www-ftp с GID и UID 4002, домашней директорией /home/www лимитами скорости загрузки\отдачи по одному мегабайту в секунду и без ограничений по занимаемому дисковому пространству. Приведу пример с использованием командной строки, вы же можете использовать и «выполнить SQL-запрос» в phpmyadmin, или даже воспользоваться «добавить строки» в phpmyadmin – но в этом случае нужно не прошляпить то, что пароль в БД храниться в виде его md5 хеша, и в поле password выбрать «Функция» md5

• Вот и все, можно пробовать подключаться к вашему фтп серверу по адресу адрес_сайта.зона c логином www-ftp и указанным паролем.
• Если вы собираетесь передавать по протоколу ФТП данные, которые не должны попасть в чужие руки, то не лишним будет настроить TLS шифрование. Для этого выполним следующее:

• Устанавливаем пакет openssl, если он не установлен и генерируем сертификат.

• Отвечаем на вопросы – эти данные будут отображаться в созданном сертификате.
• Устанавливаем права доступа на сертификат и перезапускаем pure-ftpd

• Вот и все. Помните, что для того чтобы данные шифровались необходимо включить tls шифрование со стороны клиента, и далеко не все фтп клиенты поддерживают его.

Установка комплекса управления игровыми серверами – Open Game Panel

Open game panel – он же OGP — единственное из мною найденных бесплатное решение, которое позволяет осуществлять мониторинг и управление разнообразными игровыми серверами. На момент написания статьи поддерживаются более 50 разных игр с серверами на платформах Windows и Linux. В том числе такие популярные как Counter-Strike (2D, 1.5, 1.6, Source, GO) и Minecraft( Vanilla, Bukkit)
Состоит комплекс из двух частей – веб-морды, через которую осуществляется мониторинг и управление(фронтэнд) и агента – сервиса, который висит на машинах с игровыми серверами и передает логи в фронтэнд, а команды из фронэнда игровым серверам.
• Первым делом регистрируемся на http://www.opengamepanel.org – для установки это не обязательно, но на сайте можно скачать дополнительные модули(например систему биллинга), темы и прочие плюшки.
• Устанавливаем необходимые пакеты

• Если система x64, то дополнительно устанавливаем ia32-libs

• Скачиваем сам агент

• Устанавливаем. Внимание – я предварительно создал пользователя в системе, включил его в группы root и sudo и создал ему домашний каталог – это все необходимо для того чтобы агент корректно работал.

• У нас будут спрашивать имя пользователя под которым будет крутиться сервис – нужно указать того, про которого я говорил в предыдущем пункте, его пароль, директорию в которой будут находиться исполняемые файлы(/home/имя пользователя/OGP) и попросят ввести ключ агента – это не пароль пользователя, а ключ управления агентом, он нам пригодится позже, и еще нас попросят согласиться с правилами политики Steam.
• После установки залогиниваемся под созданным пользователем и запускаем

• Нам должны написать что все в порядке, процесс запущен и слушает на 12679 порту.
• Нажимаем ctrl+c, логинимся под рутом и прописываем – это нужно для того чтобы сервис стартовал при запуске ситемы

• Если серверов (выделенных или виртуальных) несколько, то агент необходимо установить на каждом
• Теперь установим веб-интерфейс от OGP, скачиваем архив и распаковываем

• Перемещаем содержимое папки upload в папку, в которой у нас лежит сайт
• В браузере открываем адрес_сайта.зона/папка_с_ogp и выбираем язык, если вдруг насм говорят что не хватает прав на создание каких-либо файлов или папок то выдаем права 777 chmodом, для этого зайдем в папку с ogp и выполним команду.

• Возвращаемся в веб-интерфейс и нажимаем «Повторить», потом «Дальше»
• Указываем параметры подключения к БД и нажимаем «Дальше»
• Регистрируем учетную запись администратора и нажимаем «Дальше»
• Далее следуем инструкциям, возможно в следующей статья я опишу процесс добавления серверов в OGP

Источник

Как создать свой VPS-хостинг с нуля и начать на нем зарабатывать (введение)

Как сделать сервер на vds. Смотреть фото Как сделать сервер на vds. Смотреть картинку Как сделать сервер на vds. Картинка про Как сделать сервер на vds. Фото Как сделать сервер на vds

Здравствуйте, уважаемые читатели хабра. С данного материала мы начинаем серию публикаций о том, как построить VPS-хостинг с нуля на базе RUVDS White Label API.

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

Вам нужен сайт


Чтобы организовать ваш собственный VPS-сервис Вам в первую очередь понадобятся 2 вещи — сайт, на котором вы будете предлагать услуги аренды VPS-серверов и поставщик услуг, предоставляющий Вам для этих целей выгодные партнёрские условия, свою инфраструктуру и надежное API с широкими возможностями. Что же такое API? Это некий интерфейс, используя который вы сможете предоставить Вашим клиентам все те же возможности по управлению серверами, что и предоставляет Ваш поставщик услуг своим клиентам.

Интегрировать сайт с вашим VPS-провайдером посредством API будет намного дешевле и быстрее, чем создавать свою облачную инфраструктуру с нуля, так как он в этом случае «берёт на себя» множество вопросов: не нужно заботиться о наличии достаточного количества ресурсов у провайдера, о том, как организовать широкий и отказоустойчивый канал для доступа в интернет с виртуальных серверов, как собирать и хранить данные об использовании ресурсов серверами и так далее.

Стартуем


Что должно быть реализовано на этом сайте?

Регистрация, аутентификация / авторизация пользователей, восстановление паролей, форма обратной связи.
Как сделать сервер на vds. Смотреть фото Как сделать сервер на vds. Смотреть картинку Как сделать сервер на vds. Картинка про Как сделать сервер на vds. Фото Как сделать сервер на vds

Это есть у всех без исключения хостинг-провайдеров. Ваш будущий клиент обязан иметь возможность зарегистрироваться, восстановить пароль в случае его утраты, иметь личный кабинет на сайте с актуальной информацией о его балансе, купленных серверах и т.д. Также, ему обязательно нужно предоставить возможность сообщить о возникшей проблеме в технической поддержку. Для того, чтобы избежать массовой регистрации «фэйковых» аккаунтов, мы рекомендуем не пренебрегать средствами дополнительной защиты, вроде капчи на формах, а также сохранять о пользователе максимальное количество доступной информации, которая может помочь в случае выявления каких-либо нарушений с его стороны. В данном случае, есть множество готовых решений, требующих небольших доработок. Если вы планируете создавать ваш сайт на основе CMS, то вышеописанная функциональность в ней или какой-то степени реализована, или же легко подключается с помощью плагинов.

Управление личными данными клиента

Как сделать сервер на vds. Смотреть фото Как сделать сервер на vds. Смотреть картинку Как сделать сервер на vds. Картинка про Как сделать сервер на vds. Фото Как сделать сервер на vds

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

Управление серверами клиента

Как сделать сервер на vds. Смотреть фото Как сделать сервер на vds. Смотреть картинку Как сделать сервер на vds. Картинка про Как сделать сервер на vds. Фото Как сделать сервер на vds

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

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

Как сделать сервер на vds. Смотреть фото Как сделать сервер на vds. Смотреть картинку Как сделать сервер на vds. Картинка про Как сделать сервер на vds. Фото Как сделать сервер на vds

Очевидно, что для первоначального продвижения вашего нового сервиса VPS-хостинга Вам понадобиться реализовать возможность использования тестового периода. Это необходимо для того, чтобы ваш клиент мог сам решить, насколько объявленная вами цена за аренду VPS соответствует качеству, предоставляемых вами услуг. Что нужно учесть при реализации? В первую очередь, нужно выбрать количество дней. Не стоит делать тестовый пеериод слишком длинным — на вашем сервисе будут регистрироваться клиенты, которые просто хотят заполучить бесплатный сервер на определённый срок, а после того, как тестовый период завершится, зарегистрируют новый аккаунт и попытаются воспользоваться тестовым периодом снова. Для того, чтобы в какой-то мере обезопасить Вас от таких клиентов, вам обязательно нужно научиться их идентифицировать. Это особенно важно на начальном этапе развития вашего сервиса, как из-за каждого такой клиента вы будете недополучать потенциальную прибыль. Следует также учитывать, что длинный тестовый период будет Вам не слишком выгоден, так как на вашем партнёрском аккаунте, к которому привязываются все созданные вами сервера, тестового периода нет.

Как сделать сервер на vds. Смотреть фото Как сделать сервер на vds. Смотреть картинку Как сделать сервер на vds. Картинка про Как сделать сервер на vds. Фото Как сделать сервер на vds

А как клиенты будут пополнять баланс и покупать сервера? Разумеется, нам понадобится ещё один очень важный компонент, это биллинг. Что мы включаем в понятие «биллинг»? Безусловно, в него входит создание / редактирование текущих тарифов, интерфейсы для приема платежей клиентов, внутренние механизмы обработки платежей, создание акций / скидок, средства мониторинга.

К реализации своего или интеграции в Ваш проект стороннего биллинга стоит подойти особенно ответственно, ведь от работоспособности этого компонента напрямую зависит возможность покупки VPS сервера на вашем сайте (читай ваши первые деньги). Чтобы быстро начать принимать деньги от самых популярных платёжных систем, мы рекомендуем Вам использовать платёжные агрегаторы. Почему? Во-первых, интегрироваться с одним агрегатором значительно быстрее и проще, чем с каждой из предоставляемых им платёжных систем. Это связано с тем, что у каждой платёжной системы свой протокол взаимодействия, который нужно корректно реализовать и унифицировать работу с ним внутри вашей системы, что крайне трудоемко. Во-вторых, у Вас есть один интрефейс, предоставляющий большую часть необходимой функциональности для работы с платежами клиентов — это личный кабинет агрегатора. Разумеется, за все это придётся заплатить дополнительную комиссию, но на наш взгляд, это решение оптимально при создании своего VPS-сервиса.

Разумеется, до интеграции с платёжным агрегатором, Ваш сайт должен удовлетворять определённым требованиям. В качестве примера можно привести требования у платёжного агрегатора paymaster:

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

Финансовый аспект


Мы подошли к одному из самых важных аспектов (если не самому важному) — финансовому. Работать с Вашим поставщиком VPS-услуг должно быть выгодно. Давайте, посчитаем, почему организовывать сервис аренды VPS-серверов, выбрав в качестве поставщика услуг провайдера RUVDS выгодно.

Возьмем наиболее популярные конфигурации VPS на базе операционной системы Windows Server 2012 R2 и приведём некоторые данные, которые мы получили при анализе рынка VPS-услуг в России по состоянию на февраль 2016:

Конфигурация12345
Количество процессоров12468
Объем оперативной памяти, Гб124816
Объем диска, Гб, HDD2040120300600
Количество адресов IPv411111
Текущая цена конфигурации
При оплате за месяц300 р.600 р.1400 р.2980 р.5720 р.
При оплате за год2880 р.5760 р.13440 р.28608 р.54912 р.

Для того, чтобы оценить ваш потенциальный заработок, приводим выигрыш по цене конфигураций перед усреднённой ценой конкурентов:

12345
При оплате сервера на месяц474.14 р.759.13 р.794.40 р.1160.24 р.3444.85 р.
При оплате сервера на год328.61 р.601.23 р.621.31 р.966.30 р.3160.57 р.

Также, не забываем, что у нас есть расходы на выплату комиссии за перевод и вывод платёжным системам.

12345
При оплате сервера на месяц40 р.120 р.240 р.472 р.624 р.
При оплате сервера на год36 р.108 р.216 р.424.8 р.561.6 р.

Текущая скидка на создание серверов с помощью API составляет 10%.
Как оценить потенциальный заработок с одного сервера заданной конфигурации, купленного на месяц? Можно воспользоваться следующей формулой:
Заработок = Тек. цена RUVDS * 10% + Разница с усреднённой конфигурацией — Расходы на выплату комиссий.

Пример расчета для конфигурации 3:

Это заработок с одного сервера. При покупке вашими клиентами 25-30 серверов такой конфигурации, вы выходите на сумму заработка уже в 20 тысяч рублей в месяц.

В следующих статьях мы расскажем в деталях о возможностях RUVDS White Label API, обсудим как подобрать оптимальные тарифы на ваш VPS-хостинг и на каких условиях можно заработать.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *