Самые необычные виды хостинга: домашний компьютер, Raspberry Pi и чужие серверы


    Веб-сервер на Raspberry Pi

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

    А если мы хотим держать сайт полностью под своим контролем, то можем разместить веб-сервер на домашнем компьютере, одноплатнике Raspberry Pi или даже на мобильном телефоне. Главное, чтобы устройство всё время было в онлайне.

    Веб-сервер на домашнем компьютере



    Домашний сервер в винтажном корпусе, источник

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

    Конечно, для стандартного программного стека лучше установить Linux, но и в Windows нет ничего зазорного. По крайней мере, 29,2% серверов в интернете работает под Windows, так что не обязательно менять операционную систему, если на компьютере изначально стояла она, тем более если вам привычно работать с такими инструментами, как ASP.NET и C.

    Для простоты можно сразу установить весь комплект программ. Выбираем один из стеков AMP (Apache, MySQL/MariaDB, Perl/PHP/Python) под любую платформу: Windows, macOS, Linux, BSD. Например, комплект WampServer под Windows.

    WampServer — это платформа для веб-разработки под Windows для динамических веб-приложений с помощью сервера Apache2, интерпретатора скриптов PHP и базы данных MySQL. В него также входит веб-приложение PHPMyAdmin для простой обработки баз данных.

    Устанавливаем софт, получаем у провайдера внешний IP-адрес, прописываем в конфигурации доменное имя, открываем в маршрутизаторе порты 80, 3306 (MySQL), 21 (FTP), 22(SSH) или меняем их на нестандартные для уменьшения мусорного трафика от ботов-сканеров — и всё должно работать.

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

    Хостинг на Raspberry Pi


    Алгоритм понятен: нужно поднять веб-сервер на Raspberry Pi и подключить его к сети. Это не какая-то экзотика, а вполне штатное использование «малинки». На официальном сайте даже есть инструкции по установке Apache и Nginx.

    Как вариант, веб-сервер можно поднять прямо на маршрутизаторе (с прошивкой OpenWRT).

    После установки Nginx проверяем доступность сайта на адресе http://localhost/ на самом Pi или по IP-адресу устройства внутри сети, например, http://192.168.1.10. Узнать свой внутренний IP-адрес можно командой hostname -I.



    Веб-страницы по умолчанию хранятся в директории /var/www/html. Заходим туда и размещаем что угодно, заменив стандартные страницы. Адрес страницы по умолчанию прописывается в /etc/nginx/sites-available.

    Кроме Nginx, для более функционального сайта можно установить PHP:

    sudo apt install php-fpm

    Далее в /etc/nginx/sites-available находим строчку index index.html index.htm; и добавляем в середину index.php, а в середине конфигурационного файла раскомменчиваем следующие строки:

    location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    После этой процедуры перезагружаем конфигурационный файл.

    Вообще, Raspberry Pi можно использовать для разных полезных DIY-проектов. Например, сделать настенный календарь, превратить USB-принтер в беспроводной принтер, установить собственный VPN-сервер и многое другое.

    В целях эксперимента даже официальный сайт Raspberry Pi (а это большой и посещаемый сайт) однажды захостили на мини-компьютерах Raspberry Pi 3, пришлось соорудить кластер из восьми штук.


    Кластер из четырёх Raspberry Pi Model B и одной Raspberry Pi Model B+, общая стоимость системы $183,34 (из другого проекта)

    За сутки эксперимента кластер обслужил десятки миллионов посетителей.

    Домашний веб-сервер на одноплатном компьютере потребляет совсем немного электроэнергии, для его работы достаточно единственной солнечной панели на балконе. В сентябре 2018 года энтузиаст из Low-tech Magazine запустил эксперимент с таким веб-сервером на одноплатнике Olimex Olinuxino A20 Lime 2, который к настоящему моменту почти бесперебойно работает примерно два года (аптайм около 95%).


    Первый прототип солнечного сервера с контроллером заряда

    По расчётам разработчика, расход энергии на одного уникального посетителя составляет 0,021 Вт⋅ч.


    Упрощённая схема питания веб-сервера. На ней отсутствуют преобразователь напряжения с 12 на 5 вольт и счётчик ампер-часов

    Блокчейн и распределённый хостинг


    На базе блокчейна создан ряд экспериментальных проектов, в том числе криптовалюты, умные контракты, проверка подлинности документов, электронное голосование и многое другое, в том числе и децентрализованный хостинг. Одним из первых проектов такого рода стал Swarm от разработчика Ethereum Виктора Трона.

    Welcome to the Swarm.... Bzzz Bzzzz Bzzzz
    \ /
    \ o ^ o /
    \ ( ) /
    ____________(%%%%%%%)____________
    ( / / )%%%%%%%( \ \ )
    (___/___/__/ \__\___\___)
    ( / /(%%%%%%%)\ \ )
    (__/___/ (%%%%%%%) \___\__)
    /( )\
    / (%%%%%) \
    (%%%)
    !

    Децентрализованный хостинг предполагает, что сайт одновременно хранится сразу у нескольких участников сети. Теоретически, это повышает устойчивость сайта против DDoS-атак или государственной цензуры.

    Программное обеспечение для работы Swarm выпускалось для всех основных платформ: Linux, macOS, Windows, Raspberry Pi, Android и iOS. Чтобы поднять у себя узел Swarm, нужно было скачать соответствующий бинарник с официальной страницы или поднять Swarm в контейнере Docker.



    Однако новые версии для узлов Swarm не выходят с февраля 2020 года, так что сейчас работа сети под вопросом. Разработчики пишут, что они перешли к разработке нового клиента Bee, который основан на более продвинутом сетевом слое (libp2p). Они также считают, что проще переписать систему с нуля, чем исправлять ошибки. Так или иначе, но Swarm и Bee — это интересные эксперименты, которые демонстрируют концептуальную возможность распределённого хостинга.

    Можно упомянуть ещё один P2P-проект: хостинг картинок ipfs.pics, основанный на распределённой файловой системе InterPlanetary File System. Он уже несколько лет работает без сбоев. Файлы здесь хранятся в P2P-сети пользователей. Когда картинка закачивается в сеть, для неё вычисляется 46-байтный хэш, который служит уникальным идентификатором файла. Хэш соответствует названию файла. Для загрузки файла достаточно знать его хэш. Например:

    http://ipfs.pics/ipfs/QmcT99xWRNDAYunp7Zr8wGiwMKSgVfDpfbXw9hBtLCM4Mm

    Файлы в распределённой сети IPFS практически невозможно удалить или заблокировать. Исходный код сервера опубликован на Github.

    Чтобы защититься от мусора, сеть раздаёт на хранение новым пирам только те файлы, которые кто-то запрашивает.

    Другой P2P-хостинг картинок можно организовать на фреймворке Tornado, если указать файловую систему GridFS. На Хабре публиковалась инструкция, как сделать такой сервис в 30-ти строчках кода.

    «Хостинг» на чужих серверах


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

    Дальше злоумышленник уже сам выбирает, что делать с ресурсами, которые попали к нему в руки: сделать дефейс ради лулзов, установить майнер криптовалюты, добавить в ботнет для DDoS'а или разместить файлы для распространения. Это и называется «хостинг на чужих серверах» — незаконная опция, которой пользуются злоумышленники.

    Например, самый крупный современный ботнет Emotet распространяет свою вредоносную нагрузку через сеть взломанных сайтов, которые бот-мастер с условным именем именем Иван контролирует через свои веб-шеллы, установленные там.

    Так же работают некоторые другие ботнеты. В их состав которых входят домашние компьютеры, веб-серверы под Linux, смартфоны, маршрутизаторы и другие устройства интернета вещей, например, умные телевизоры под Android.

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



    В общем, собственный хостинг имеет ряд преимуществ. Cервер в подвале или на балконе полностью находится под вашим контролем. Вы устанавливаете любое железо и программное обеспечение, на своё усмотрение. Никому не нужно платить ежемесячную плату за хостинг (даже наоборот, вы и сами можете предоставлять такие услуги). И главное преимущество — всегда интересно узнать что-то новое, в данном случае — освоить некоторые навыки инженера и девопса.

    Если же вам нужен надёжный сервер, который работает как швейцарские часы, то милости просим в ВДСину! Только современное и брендовое оборудование, одни из лучших дата-центров в России и Нидерландах, защита от DDoS «из коробки», удобная панель управления серверами собственной разработки и ещё много других плюшек. Поспешите заказать!

    VDSina.ru
    Серверы в Москве и Амстердаме

    Комментарии 19

      0

      Как вариант ещё — если у вас домашний роутер не дефолтный, можете свой веб-сервер (если он для сайта-визитки или подобного статичного контента) запустить прямо на нём. Мой довольно старенький Asus AC-RT68U работает на DD-WRT и может на подключенной флешке держать спец файл-систему для, в том числе для хостинга веб сайта.
      Кстати, "зелёный" вариант сайта на "малинке" лукаво умалчивает о том, что будет, если пропадёт электричество дома (роутер-то отключится и доступа не будет).

        0

        эмм — флешка модем GSM !?

          +1

          Вы знаете, иногда флешка — это просто флешка.

          0
          Не вижу проблемы посадить роутер на ибп
            0
            если пропадает фаза — ибп на роутере не спасёт — роутер в доме будет обесточен. (если только не через 4g модем выход)
              +2
              Вы имеете в виду провайдерский коммут на чердаке?
              Если так продолжать идти по этой цепочке, то можно дойти до того что выключат свет в доме у посетителя сайта, и для него доступ на сайт тоже будет усложнен по причине обесточения его личного роутера.
              Там посыл был в том что для работы самого сайта не тратится электроэнергия. А так то всегда можно какой-то кабель перерезать по дороге и связность нарушится =)
                +1
                Renogy 50W 12V Monocrystalline Solar Panel — $79.33
                12v 14Ah Rechargeable Sealed Lead Acid (Rechargeable SLA) Battery — $48
                Raspberry pi 4 — $60
                Контроллер питания — бесплатно.
                Аренда белого ip адреса — бесплатно ;)
                Итого $188
                При uptime в 2 года (как упомянуто в статье) — около $8 в месяц.
                VPS можно арендовать и за $2 в месяц (а при длительной аренде будет еще дешевле), причем полоса пропускания и обьём дискового пространства будут совершенно другие.
                Итого: хостинг на raspberry и солнечных батареях в общем случае неоправдан. Но в некоторых случаях (стриминг видео из камеры посреди пустыни, например) — это выход.
                  0
                  VPS можно арендовать и за $2 в месяц

                  Где? Дайте два.
                    0
                    google://vps hosting europe linux

                    Заголовок спойлера
                    image


                      0
                      Поделитесь пожалуйста ссылью
                          0
                          Они скан паспорта просят, кстати, сразу после регистрации. Это жирнющий такой минус, который перекрывает плюс в виде хорошей цены.
                            0

                            Мопед не мой ;) Возможно, нужно выбрать что-то одно: либо анонимность либо дешевизну.

                            0
                            Благодарю!
                        0

                        или вот 15 евро в год
                        Product/Service: NVME LINE — 1core-512mb ram -10gb NVME -5tb traffic/mo --15 eur/year
                        Domain: remote
                        Os Template: ubuntu18img
                        First Payment Amount: €15.00EUR
                        Recurring Amount: €15.00EUR
                        Billing Cycle: Annually


                        Только там OpenVZ и ядро старое довольно, но это смотря какие запросы

              +1
              Не упомянута ещё такая экзотика. Можно считать вариантом «хостинга» на чужих серверах. Но только для одной небольшой страницы. Насколько помню, сначала bit.ly даже позволял делать короткие ссылки. Но не долго. Что касается любителей дешёвого хостинга, то был у меня сайт на Малинке. Технических проблем почти не было, разве что пришлось переползать с DB2 на PostgreSQL с потерей значительной части функциональности и написать своего клиента для DynDNS по спецификации nicupdate-api(2006).pdf (существовавшая на тот момент официальная реализация не устраивала с точки зрения безопасности и скорости узнавания нового IP адреса, быстрее было брать с веб морды роутера). А вот светить адрес своего роутера, мне кажется, в общем случае может оказаться довольно рискованной затеей.
                0

                "А вот светить адрес своего роутера, мне кажется, в общем случае может оказаться довольно рискованной затеей"


                Да. Но есть cloudflare например.

                  0
                  Если стоимость и функционал устраивает, почему бы и нет. Но я тогда, насколько помню, применял на страницах примерно такой тэг: meta name="robots" content="noarchive,notranslate,noimageindex", как мог, старался запретить сохранение содержимого страницы поисковиками для обычных пользователей, хотя всего уже теперь не вспомню. Тогда придерживался правила: «если сайт в данный момент не доступен, то не должно быть способа получить его содержимое». Но соглашусь, что это несколько специфические условия. Не знаю, можно ли было тогда сделать что-то подобное в настройках cloudflare.

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

              Самое читаемое