Где размещать любительские web проекты? Обзор Python PaaS провайдеров

Описывается базовая настройка VPS для работы в качестве веб-сервера. Будут установлены Apache, PHP, сервер баз данных MariaDB и Nginx в качестве кеширующего прокси.

Выделенные серверы VPS: преимущества и недостатки

« Самый длинный в мире противокошачий забор построили в Австралии ||| В Хабаровске легковушка с пьяным автомобилистом «влетела» в дерево » Май 28, 2018 3:41 ДВ-РОСС No comments

Хостинг-провайдер, оказывающие в аренду выделенные серверы VPS, использует программное обеспечение виртуализации, называемое гипервизором, для управления абстрактного ресурса на физическом сервере и предоставления клиентам доступа к эмулированному серверу, называемому виртуальной машиной (VM). Каждый виртуальный сервер запускает «свою» операционную систему и имеет ограниченный доступ к части вычислительных ресурсов физического сервера. Клиенты имеют доступ к ОС виртуальной машины, но не к физическому серверу.

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

Преимущества VPS-хостинга

Одним из основных преимуществ использования vps, в отличие от традиционной услуги веб-хостинга, является то, что абонент имеет полный доступ к ОС VPS с неограниченными правами администратора. Этот уровень доступа позволяет абонентам настраивать VPS для удовлетворения своих уникальных требований.

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

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

Недостатки хостинга VPS

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

Основным недостатком использования VPS является невысокая производительность. Организация, предоставляющая VPS, как правило, дросселирует производительность сервера, чтобы максимизировать количество VPS, которые может разместить физический сервер. В маловероятном случае, когда производительность VPS не дросселируется, становится возможным, чтобы соседний VPS потребляет чрезмерные ресурсы, что негативно влияет на производительность другого VPS. Между тем, сегодня есть возможность использовать виртуальный выделенный сервер vds, который обычно работает быстрее.

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

Posted in: Интересное

Как определить что создает нагрузку на сервер UNIX

Указанная статья актуальна только для услуг виртуальных и выделенных серверов с ОС Linux и c уровнем доступа root. На виртуальном хостинге и на серверах ОС семейства Windows указанное выполнить нет возможности.

Вся работа осуществляется только при подключении по протоколу SSH: -connect

Сначала рекомендуем запустить самую стандартную утилиту top

Внешний вид утилиты следующий:

В верхней строке слева на право указано текущее системное время сервера после top, затем время работы сервера онлайн и количество пользователей в данный момент.

Важным показателем является load average который показывает усредненную загрузку всех подсистем сервера в текущий момент, за последние 15 минут и за последний час. Стоит отметить что этот показатель не должен превышать количество ядер сервера, то есть для 1-ядерного CPU — номинальная нагрузка — 1, для 2-х ядерного — 2 и т.д.

В строчке Tasks указано количество запущенных заданий на сервере с разбивкой по их состоянию.

В строчке CPU указано:

  • us — (User CPU time) время, затраченное на работу программ пользователей
  • sy — (System CPU time) время, затраченное на работу процессов ядра
  • ni — (Nice CPU time) время, затраченное на работу программ с измененным приоритетом
  • id — простой процессора
  • wa — (iowait) время, затраченное на завершение ввода-вывода
  • hi — (Hardware IRQ) время, затраченное на обработку hardware-прерываний
  • si — (Software Interrupts) время, затраченное на работу обработку software-прерываний (network)
  • st — (Steal Time) время, «украденное» гипервизором у этой виртуальной машины для других задач (например работа другой виртуальной машины)

В строчках MEM и SWAP указано доступный размер оперативной памяти/файла подкачки, используемый обьем, свободный обьем и обьем буферезированной/кешированной памяти.

Программа с частотой обновления в 2 секунды показывает текущую активность процессов в виде таблицы.

Стандартные колонки:

  • PID — идентификатор процесса
  • USER — пользователь, от которого запущен процесс
  • PR — текущий приоритет процесса
  • NI — приоритет, выставленный командой nice. От −20 (наивысший) до 19.
  • VIRT — полный объем виртуальной памяти, которую занимает процесс
  • RES — текущее использование оперативной памяти
  • S — текущее состояние («START», «RUN» (только в этом состоянии показывает текущую нагрузку программы на процессор), «SLEEP», «STOP», «ZOMB», «WAIT» или «LOCK»)
  • %CPU — процент доступного времени процессора, которое использовала запущенная программа
  • %MEM — процент использования оперативной памяти данным процессом
  • TIME — время использования процессора в секундах
  • COMMAND — команда, запустившая процесс.
Читайте также:  Manjaro 21, Новости и легкая загрузка Linux на базе Arch

Дополнительная информация есть также на сайте —

Также можно использовать альтернативную утилиту htop

Внешний вид ее следующий:

Боле подробно об этой утилите можно почитать тут —

Также эффективна команда atop -r, используя клавиши t и shift+t можно смотреть историю работы сервера.

В случае если в top имеется большой показатель wa, стоит воспользоваться утилитой atop -dD для подробного определения нагрузки на диски, raid-массивы и сеть:

Если процент загрузки сети в atop (eth0 на примере выше) большой, с помощью утилиты iftop можно определить какие сайты и удаленные сервера собственно создают трафик

Командой kill можно остановить конкретный процесс, указав его PID команда killall -9 apache2 к примеру завершит все процессы apache на сервере команда killall -u user завершит все процессы пользователя user

Для того чтобы посмотреть что происходило на сервере в прошедшем времени и к примеру из-за чего сервер завис, нужно посмотреть логи сервера в папке var/log, в частности рекомендуем к просмотру системные логи syslog, kernal, atop и логи сервисов. которые зависли, как то apache2, nginx, mysql и другие.

Также если на сервере установлен веб-сервис Nginx и размещены сайты, то с помощью команды: tail -n 10000 /var/log/nginx/ | awk ‘{print $6}’ | sort -n | uniq -c | sort -nr | head -n10 можно вывести список сайтов, на который поступило больше всего запросов.

Команда: tail -n 10000 /var/log/nginx/ | awk ‘{print $1}’ | sort -n | uniq -c | sort -nr | head -n10 выведет список IP с которых поступило больше всего запросов

Команда: iptables -I INPUT -s 1.1.1.1 -j REJECT заблокирует доступ к серверу для IP 1.1.1.1

Более подробно о работе с iptables можно прочесть тут —

  • Редактировать
  • Удалить

Revised: 19 октября 2018, 15:56

Нагрузка на сайт как ключевой параметр выбора хостинга

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

Нагрузка на сайт как ключевой параметр выбора хостинга

Таким образом, выбор типа хостинга ключевым образом зависит от нагрузки на сайт, а именно от его посещаемости и технической сложности.

Обезопасить SSH

Настройки SSH назодятся в файле /etc/ssh/sshd_config. Внесем туда несколько изменений, чтобы повысить безопасность.

2.1 Разрешаем вход в систему только определенным пользователям:

AllowUsers root dummy

Чтобы запретить вход только конкретному пользователю, используйте

#DenyUsers root

Я здесь намеренно разрешаю пользователю root входить на сервер. Не думаю, что в случае с веб-сервером использование sudo оправдано.

2.2 Изменяем стандартный порт SSH на что-нибудь неочевидное:

Port 2022

Это простое действие обламывает множество тупых ботов. Хотя остается немало умных, увы.

2.3 Запрещаем вход по пустым паролям:

PermitEmptyPasswords no

2.4 Проверяем кодировку, чтобы нормально читались файлы с кириллическими именами:

AcceptEnv LANG LC_*

2.5 Органичиваем время ожидания авторизации, максимальное количество попыток ввода пароля, максимальное количество сессий:

LoginGraceTime 1m PermitRootLogin yes StrictModes yes MaxAuthTries 3 MaxSessions 3

Здесь же разрешаем root вход на сервер.

2.6 Заставляем использовать только протокол версии 2:

Protocol 2

2.7 Перезапускаем SSH

/etc/init.d/ssh restart

Теперь можно выйти из системы, изменить порт подключения и войти снова.

Open Server

Далее все просто. Вам понадобится Open Server. Она бесплатная. При желании вы можете внести пожертвование, разработчики будут рады даже 100 рублям. Кстати, если вы переведете деньги, то сможете загрузить пакет за считанные секунды. Если нет, то придется немного подождать.

Что такое Опен Сервер? Удобная серверная платформа, которую создали специально для веб-мастеров. Если бы не она, то вам бы пришлось вручную устанавливать php, apache, MySql и кучу дополнительных программ. В общем масса геморроя.

Open Server

Open Servere – это пакет, в котором уже есть все компоненты. Они понадобятся для серверной установки. Останется только распаковать все содержимое и можно заниматься разработкой сайта или написанием скрипта.

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

Однако, Open Server – не единственный пакет. Одним из первых появился Denver, чуть позже xampp. Но я бы не назвал их лучшими. Обновляются довольно редко, а потому теряют свою популярность. Кроме того, вы можете управлять отдельными частями. Добавлять что-то свое, удалять или редактировать. Со временем это может пригодиться.

В Open Server есть множество дополнительных инструментов: просмотр логов, планировщик задач и многое другое.

Open Server

Кстати, эту программу вы можете установить даже на флешку. Это очень удобно, если вы делаете сайт на заказ и не готовы показывать его в интернете. Просто копируете сайт на USB и готово. Можете вставлять съемный диск в любой компьютер. Заказчик увидит его точно также, как если бы портал уже был в интернете.

Читайте также:  Как легко и быстро выучить билеты пдд? секреты и советы

Но, довольно прелюдий. Давайте посмотрим на программу в деле. Для начала ее нужно скачать. Переходим в одноименный раздел, выбираем подходящую версию (basic, ultimate, premium), вводим цифра с картинки и переходим к скачиванию.

При желании все это можно будет установить позже. Я рекомендую брать Premium.

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

Open Server

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

После того как процесс завершится вы увидите на диске С папку Open Server. В ней будет расположено несколько папок и 2 установочных файла. В папке domains будут располагаться папки с вашими сайтами. Modul – дополнительные установочные программы: php, mysql и так далее.

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

Сразу после запуска вам предложат установить Microsoft Visual C++. Вполне вероятно, что все у вас уже установлено, но во избежание проблем и ошибок можно выполнить загрузку еще раз.

Open Server

После загрузки в правой нижней части экрана, рядом с часами скроется панель Open Server. Нажав на кнопку «Запуск» вы активируете сервер, кнопка «Перезапустить» нужна после того, как вы сделаете какие-то изменения в папке и хотите, чтобы они вступили в силу, ну и «Остановить» прекращает его работу.

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

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

Как заказать сервер и подключиться к нему

Процесс заказа предельно прост: вы справитесь с ним, даже если до этого ни разу не пользовались хостингом или VPS.

Шаг 1. Перейдите на сайт

Как заказать сервер и подключиться к нему

На странице «Облачные серверы» вы можете подробнее ознакомиться с особенностями услуги, кейсами применения, а также сразу выбрать нужную конфигурацию и тариф.

Шаг 2. Выберите конфигурацию и шаблон

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

Шаг 3. Закажите сервер и пополните баланс

Как заказать сервер и подключиться к нему

Нажмите на кнопку «Заказать сервер».

После этого нужно зарегистрироваться — это не займёт много времени, так как можно использовать для входа любую соцсеть. Если у вас уже есть аккаунт , то просто зайдите на сайт.

Вы попадёте в личный кабинет, где нужно пополнить баланс облачного счёта, чтобы сервер начал работать. Это можно сделать с помощью банковской карты или одной из систем оплаты. Нажмите на кнопку «Оплатить» и пополните баланс не менее чем на 100 рублей (условие , которое действует для серверов с почасовым биллингом).

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

Как заказать сервер и подключиться к нему

Шаг 4. Подключитесь к серверу

Зайти на сервер можно прямо из личного кабинета. Для этого нажмите на карточку только что созданного сервера и выберите в левом меню пункт «Открыть консоль». Введите логин «root» и пароль от сервера. IP-адрес и пароль отображаются сразу после создания, а также дублируются на вашу почту вместе с реквизитами доступа к вспомогательному софту, такому как phpMyAdmin.

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

Если вы предпочитаете стандартную консоль Linux или же Putty на Windows, можете подключиться к серверу через них, используя протокол SSH.

Как заказать сервер и подключиться к нему

Шаг 5. Проверьте, что всё работает

Когда вы зайдёте на Облачный сервер, то увидите всё установленное ПО и его версии. В нашем случае на сервере уже есть Nginx, Python, Django, PostgreSQL и другие пакеты. При этом на сервере сразу же разворачивается тестовый проект Django, к которому можно подключиться через URL админки. Также указан путь к проекту на сервере.

Зайти в папку проекта можно, введя команду:

cd /<путь к проекту>

Как заказать сервер и подключиться к нему

Чтобы убедиться, что всё работает, введите в браузере IP-адрес сервера. Вы должны увидеть окно успешной установки Django.

Отлично! Теперь вы можете заменить тестовый проект на свой.

OpenShift (PaaS)

Использовал для самого первого учебного проекта Облако тегов. Этот проект запускался давно, к настоящему времени тарифную линейку и платформу успели обновить. Мои комментарии больше относятся к тому, что сейчас называется OpenShift Online 2.

Плюсы:

  • Неплохой Free Tier. Ранее давали 3 виртуалки по 512 МБ. Сейчас дают 1ГБ памяти и только 1 проект.
  • Быстрое развертывание приложений. Уже не помню, есть ли при редеплое даунтайм.

Минусы:

  • Ужасная утилита для управления виртуальными машинами. Написана на Ruby и требует конкретных версий интерпретатора. Когда я активно работал с OpenShift, утилита не работала на более свежих версиях Ruby.
  • Не очень удобно, что развертывание идет через Git и при создании новой конфигурации виртуальной машины в локальную директорию автоматически клонируется, затирая все внутри, базовое приложение-заглушка. Не уверен, что можно взять уже существующую директорию с Git и залить ее в облако.

Платный и бесплатный хостинг

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

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

Бесплатный хостинг подходит лишь небольшим проектам, не рассчитанным на широкую аудиторию

Кроме того, на бесплатном хостинге часто нет необходимых инструментов: Perl, MySQL, PHP, баз данных, почты и много другого. Также на вашем сайте будет размещаться реклама хостинг-провайдера, а доменное имя, скорее всего, будет третьего уровня (например, ).

Вдобавок при бесплатном пользовании услугой у вас вряд ли получится предъявить к хостинг-провайдеру какие-либо требования. Поэтому для средних и тем более корпоративных и коммерчески ориентированных сайтов и других серьёзных интернет-проектов рекомендуется подключить платный хостинг. Но как же не ошибиться при его выборе?

При выборе хостинга обратите внимание на четыре нюанса:

  • объём дискового пространства;
  • набор технических функций и инструментов;
  • уровень технической поддержки;
  • соотношение цены и качества хостинг-услуги.

Разберёмся с ними по порядку.

Настройка SSL для домена на WordPress

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

Существует несколько способов получения бесплатного сертификата. Это могут быть плагины, генерация сертификатов на третьих ресурсах или генерация их вручную. Последний вариант мы и рассмотрим.

Устанавливать будем с помощью утилиты Certbot, которая поддерживает бесплатные сертификаты от сервиса Let’s Encrypt.

Настройка SSL для домена на WordPress

[email protected]:~# wget -auto [email protected]:~# chmod a+x certbot-auto

Запустим сценарий, указав apache. Если вы используете nginx, укажите его.

[email protected]:~# ./certbot-auto —apache

Во время выполнения скрипта, нужно будет выполнить ряд действий, предоставив необходимую информацию.

Настройка SSL для домена на WordPress
  • Введите ваш действующий email адрес
  • Подтвердите пользовательские соглашения. Ответ: А
  • Желаете ли получать email рассылки? Ответ: N
  • Для какого домена нам нужен сертификат. В нашем примере без www
  • Пункт предлагает, оставить сайт доступным по HTTP и HTTPS, или только по HTTPS. В нашем примере мы выбрали первый вариант. На скриншоте информация нечитабельна, но перевод уведомления красным цветом буквально следующей: «Будущие версии Certbot будут автоматически настраивать веб-сервер так, чтобы все запросы перенаправлялись на безопасный доступ HTTPS. Вы можете контролировать это поведение и отключить это предупреждение с помощью флагов —redirect и —no-redirect.»

Certbot автоматически все сгенерировал и разложи по каталогам. Сертификат (certificate) и цепочку (chain) сохранил в:

/etc/letsencrypt/live/

Приватный ключ сгенерирован здесь:

/etc/letsencrypt/live/

Удобство заключается так же в том, что Certbot просканировал все наши каталоги и виртуалхосты, автоматически создав новый конфиг

Если платный сертификат выдается сроком на 1 год, то бксплатный сертификат Let’s Encrypt выдается сроком на три месяца. Продлить его можно следующей командой, из каталога в который скачан Certbot :

Настройка SSL для домена на WordPress

[email protected]:~# ./certbot-auto renew

добавить выполнение данной команды в планировщик задач cron. Рекомендуется ставить выполнение задачи не чаще, чем раз в три месяца, иначе при валидном сертификате он может не обновится.

Есть несколько ресурсов, на которых можно проверить валидность ssl сертификата.

Далее идем в панель управления -admin, в левом меню переходим в раздел «Настройки», в директивах Адрес WordPress (URL) и Адрес сайта (URL) меняем http на https. Нажимаем «Сохранить изменения» внизу страницы.

Отключаем HTTP, для этого наш файл .htaccess приводим к следующему виду:

Настройка SSL для домена на WordPress

<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} =off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L] </IfModule>

Примечание: файл .htaccess гибок, существует огромное количество реализаций редиректов и других настроек. Они во многом зависят от реализации самого сайта. В нашем примере мы показали, как выполнить первоначальные настройки. Для более гибких и тонких, рекомендуется обратиться к разработчику, который сопровождает ваш сайт.

Если после этого вы получите ошибку циклической переадресации, необходимо в файле , после <?php добавить с новой строки следующее содержимое:

if ($_SERVER[«HTTP_X_FORWARDED_PROTOCOL»] == ‘https’){ $_SERVER[«HTTPS»]=’on’; } if ($_SERVER[«HTTP_X_FORWARDED_PROTOCOL»] == ‘http’){ $_SERVER[«HTTPS»]=’on’; header(«Location: https://».$_SERVER[«HTTP_HOST»].$_SERVER[«REQUEST_URI»]); exit(); }

Настройка SSL для домена на WordPress

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