Страница веб-сервера

Страница веб-сервера Хостинг

Do I have a web server running?

having a web server turned on doesn’t necessarily mean you are serving pages on the world wide web. its what allows you to load your own static files (.html, .js etc.) in a browser via http://.

if you’re not sure whether or not you have a web server running, no problem! its easy to confirm.

if you’re looking at a webpage, great!
you’re done.

What if i don’t?

🎵 interlude 🎵

What if I’d rather use something else?

you don’t need a why, but here are a couple reasons:

SimpleHTTPServer (a Pythonic approach)

Python comes preinstalled on Macs (and is installed on Windows with ArcGIS Software) so it’s SimpleHTTPServer module is an excellent choice.

i’m web serving!

Http-server (for Node)

Node.js gets more popular by the day, so if you already have it installed (or don’t mind taking two minutes to do it now) the npm module http-server is a really good choice too.

npm install http-server -g

Thats it!

Веб-сервер (Web Server) — это программное обеспечение, которое обеспечивает хранение, обработку и доставку веб-страниц и других ресурсов по HTTP-протоколу (Hypertext Transfer Protocol).

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

Как работает веб-сервер?

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

Какой путь проходит запрос пользователя на открытие веб-сайта или его страницы?

Этот процесс повторяется для каждого запроса, который получает сервер.

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

Процесс отображения страниц сайта в браузере основан на стандартных веб-технологиях, таких как HTML (Hypertext Markup Language), CSS (Cascading Style Sheets) и JavaScript, а браузеры имеют встроенные инструменты, которые обрабатывают полученные данные, чтобы отображать веб-страницы в понятном виде для пользователя.


Страница веб-сервера

Схема работы веб-сервера

Популярные веб-серверы

Популярные веб-серверы для разных операционных систем:

Дополнительное программное обеспечение

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

Языки программирования, такие как PHP, Python и Ruby, работают на сервере с помощью специальных интерпретаторов, которые обрабатывают код на соответствующем языке и возвращают результаты обратно в веб-браузер пользователя.


Страница веб-сервера

Сайт, с точки зрения веб-сервера

Веб-сайты обычно организованы в виде структуры директории (папок) в файловой системе на веб-сервере. Корневая директория веб-сайта обычно является точкой входа, откуда начинается обработка HTTP-запросов. Когда клиент отправляет запрос на веб-сайт, веб-сервер принимает запрос, ищет запрашиваемый ресурс в файловой системе и отправляет его в ответ.


Страница веб-сервера

Как установить CMS на веб-сервер?

Для установки CMS (системы управления контентом) на веб-сервер необходимо выполнить следующие действия:

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

Виды веб-серверов

Выделенный веб-сервер (Dedicated web server) — это физический сервер, полностью выделенный для одного веб-сайта или приложения. Он предоставляется одному клиенту и не разделяется с другими пользователями или проектами.

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

Виртуальный веб-сервер

Виртуальный веб-сервер (Virtual Web Server) — это подход, в котором физический сервер разделяется на несколько виртуальных серверов, каждый из которых функционирует независимо и предоставляет возможность запуска веб-сайтов и приложений.

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

Каждый виртуальный сервер:

Shared веб-сервер

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

Локальный веб-сервер

Локальный веб-сервер (Local Web Server) — это веб-сервер, установленный и работающий на локальном компьютере. Он предоставляет среду для разработки, тестирования и запуска веб-сайтов и веб-приложений на локальном устройстве без необходимости публикации в интернете.

Локальный веб-сервер — это полезный инструмент для разработчиков и тестировщиков, который обеспечивает удобную и безопасную среду для работы с веб-сайтами на персональном компьютере или ноутбуке.

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

Популярные решения для создания локальных серверов для разных операционных систем Windows, macOS и Linux:

Выбор конкретного решения зависит от ваших предпочтений, операционной системы и требований к разработке.

Обновление версий ПО

Важно своевременно обновлять используемые версии веб-сервера, CMS, языков программирования, фреймворков и СУБД. Что дает своевременное обновление:

Перед обновлением важно сделать резервную копию сайта и проверить совместимость обновлений с плагинами, темами и настройками.

Используемые термины


Страница веб-сервера

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

Читайте также:  Что значит ptr

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

Серверы могут быть связаны в сети для обеспечения масштабируемости и более эффективного распределения нагрузки между ними.


Страница веб-сервера

URL (Uniform Resource Locator / Унифицированный указатель ресурсов) — это стандартизированный адрес, который используется для указания местоположения ресурса в сети Интернет. Он представляет собой строку символов, которая идентифицирует ресурс и определяет, как получить к нему доступ.

URL состоит из следующих компонентов:

Пример URL: http://www.samesaite.com/images/photo.jpg?q=example

Этот URL указывает на веб-ресурс с использованием протокола HTTP, находящийся на сервере с доменным именем «www.samesaite.com». Ресурс находится в директории «images» и представлен файлом с именем «photo.jpg». Также в URL присутствует параметр «q» со значением «example», который может быть использован сервером для выполнения определенного действия.


Страница веб-сервера

HTTP (Hypertext Transfer Protocol / Протокол передачи гипертекста) — это протокол передачи данных, используемый для обмена информацией между веб-серверами и их пользователями. Он определяет, как, по каким правилам клиенты и серверы должны взаимодействовать между собой для запроса и передачи данных, например, веб-страницы, изображения, видео и другие файлы.

HTTP-запрос (Hypertext Transfer Protocol request / Запрос протокола передачи гипертекста) — это сообщение, отправляемое клиентским приложением (обычно веб-браузером) на веб-сервер для получения данных или выполнения определенного действия. H TTP-включает:

СУБД (система управления базами данных) — это программное обеспечение, которое позволяет организовывать, хранить, изменять и извлекать данные из базы данных. Она предоставляет средства для управления структурами данных, выполнения запросов, обеспечения безопасности данных и обеспечения целостности данных.

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

Мы часто используем lighttpd в качестве встроенного веб-сервера для различных служб (например веб-панелей и т.п.), в то же время многим нашим читателям нужен простой и легкий веб-сервер для размещения своих внутрисетевых ресурсов. Сегодня мы расскажем как сделать такой сервер на базе lighttpd.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

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

Мы развернули в нашей тестовой лаборатории следующую схему:


Страница веб-сервера

Наша задача: развернуть на веб-сервере внутренний ресурс по адресу http://site.local и сделать возможным использование для него любых современных движков (например Joomla). В качестве операционной системы сервера будем использовать Ubuntu 10.04.3 x64 со всеми последними обновлениями.

Прежде всего установим необходимые для администрирования пакеты mc и OpenSSH:

sudo apt-get install mc ssh

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

Прежде всего установим сам веб-сервер:

sudo apt-get install lighttpd


Страница веб-сервера

Это хорошо, но нам нужно чтобы пользователи могли обращаться к сайту набирая его имя. Для этого в /etc/lighttpd/lighttpd.conf добавим следующую секцию:

sudo service lighttpd restart

Осталось только сообщить компьютерам нашей сети, что сайт site.local обслуживается нашим веб-сервером по адресу 10.0.0.145, это можно сделать прописав соответствующие строки в файле hosts на каждой рабочей станции, но лучше сделать это централизованно. Так как у нас в сети развернут кеширующий DNS (Dnsmasq) будет глупо не воспользоваться его возможностями. Для этого на роутере в конфигурационном файле /etc/dnsmasq.conf добавим следующие строки:

sudo service dnsmasq restart

Если теперь мы наберем в браузере site.local, то также увидим страницу-заглушку веб-сервера.


Страница веб-сервера

Создадим в блокноте проверочную HTML страницу и сохранив ее под именем index.html разместим в папке /var/www нашего сервера (не забудьте установить права 777 на /var/www):

Если все сделано правильно, то набрав адрес сайта вы должны увидеть вместо заглушки нашу страничку:


Страница веб-сервера

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

sudo apt-get install php5-cgi

Затем в /etc/php5/cgi/php.ini найдем, раскомментируем и приведем к следующему виду строку:

cgi.fix_pathinfo = 0

Теперь включим поддержку PHP в lighttpd:

sudo lighttpd-enable-mod fastcgisudo lighttpd-enable-mod fastcgi-php

Для проверки создадим в блокноте файл следующего содержания:

И сохранив его как test.php разместим в /var/www нашего сервера, затем наберем в браузере http://site.local/test.php после чего вы увидите стандартную страницу с информацией о РНР:


Страница веб-сервера

Следующим шагом установим сервер баз данных MySQL и модуль PHP для работы с ним:

sudo apt-get install mysql-server php5-mysql

service mysql restart

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


Страница веб-сервера

Страница веб-сервера

В заключение установим на наш сервер популярный движок Joomla. Для этого скачаем с официального сайта необходимые пакеты, разместим файлы движка в /var/www (предварительно удалив все содержимое папки) и установив необходимые права на папки и файлы (см. инструкции к движку) начнем установку просто набрав в браузере адрес сайта.

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

Читайте также:  Настройка веб-сервера Nginx + PHP-FPM + MySQL


Страница веб-сервера

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

Создаем веб-страницу и размещаем ее на локальном веб-сервере

Здравствуйте уважаемый посетитель!

Эта статья о том, как создать веб-страницу и разместить ее на виртуальном хосте локального веб-сервера.

А, понадобится нам для этого, как показано на картинке: локальный веб-сервер, текстовый редактор, язык описания структуры веб-страниц HTML и язык стилей CSS.

Создание виртуального хоста на локальном веб-сервере

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

Здесь, будет рассматриваться работа с локальным веб-сервером на примере сборки программ Denwer (Денвер). Но, это не принципиально, так как все это можно делать и на других аналогичных программных продуктах.

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

После установки Денвера в директории «WebServers/home/» уже имеются сконфигурированные виртуальные хосты, такие как, «localhost», «test1.ru», «custom». Создадим для нашего сайта новый хост и назовем его, к примеру, «newsite.local», подразумевая под этим именем то, что это новый сайт и размещен он на локальном сервере (не стоит из-за возможной путаницы в дальнейшем, присваивать именам хоста реальные доменной зоны, такие как «ru», «com» и т.п.

В этой папке «newsite.local» создадим новую папку «www», в которой и будем размещать файлы сайта, а также, скопируем сюда же из существующих хостов, вспомогательные папки «subdomain» и «cgi».

После проделанных операций, необходимо перезапустить сервер для того, чтобы он внес в свою работу соответствующие изменения. Это можно сделать через ярлык «Restart Denwer», который может быть создан при установке Денвера, либо (если его не оказалось) через специальный файл Restart.exe в папке «denwer».

Создание файла веб-страницы с проверкой работы локального веб-сервера

Ну, а теперь перейдем к созданию веб-страницы. Для этого, в первую очередь, с помощью текстового редактора Notepad++ создадим файл «index.html», в котором будет находиться код нашей главной страницы. Как установить текстовый редактор можно посмотреть здесь.

Следует отметить, что при открытии сайта с адресом, в котором указано доменное имя, без каких-либо других директорий, браузеры всегда открывают файл, находящийся в корневом каталоге под именем «index». Поэтому, мы и начнем создавать страницы нашего сайта с этого файла. В данном случае он будет иметь расширение «html», так как его код будет основан на HTML.

Но, перед этим, для того, чтобы избежать в дальнейшем лишних недоразумений с отображением HTML-страниц, желательно, в самом начале проверить кодировку, которая установлена в редакторе Notepad++ при открытии новых документов.

Это можно сделать следующим образом: через меню «Опции» открыть окно «Настройки» и в параметрах «Новый документ» проверить, чтобы была установлена универсальная кодировка «UTF-8 без метки BOM», как показано ниже.

Теперь создадим новый файл через меню «Файл», нажав на кнопку «Новый». В открывшейся новой вкладке для проверки работы веб-сервера и правильности установок кодировки, напишем какую-нибудь фразу, к примеру, «Проверка» (такая проверка не является необходимой при создании HTML-страницы и приводится здесь только лишь для лучшего понимания выполняемых действий).

Теперь сохраним этот файл в папке «www» вновь созданного хоста «newsite.local». Для этого, через меню «Файл» выберем «Сохранить как», введем имя файла «index.html», укажем нужную папку и нажмем «Сохранить».

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

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

Для того, чтобы это сделать, надо аналогичным образом, как и с «index.html», в редакторе Notepad++ создать новый файл и сохранить его в той же папке под именем «.htaccess». При этом в самом файле необходимо написать следующую строку «AddDefaultCharset UTF-8», как показано на скриншоте.

Ну, а теперь, если снова обновить браузер с адресом нашего хоста «newsite.local», то можно убедиться в появлении на странице того текста, который изначально был написан нами в файле «index.html».

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

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

Составление каркаса HTML-страницы

После того, как мы убедились в работоспособности локального веб-сервера и в правильном отображении нашей веб-страницы, перейдем к наполнению ее кодом HTML.

Но, для того, чтобы заниматься написанием HTML-страниц, необходимо с начала познакомиться с основами языка описания структуры веб-страниц HTML.

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

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

Это в полной мере относится к написанию HTML-страниц, ведь не будешь по каждому, а тем более не значительному вопросу, прокручивать видеозапись в поисках нужной информации.

Поэтому, при создании веб-страниц удобно пользоваться справочниками. Какими? Очень сложно однозначно ответить на этот вопрос. Наверное, у каждого имеются свои предпочтения, тем более, что в сети интернет их имеется большое множество.

Читайте также:  Легко управляйте и защищайте свою электронную почту с помощью почтового сервера CentOS

От себя, могу посоветовать такой информационный ресурс, как онлайн справочник Особенность его в том, что он дает не только достаточно подробную справочную информацию по основным языкам, используемых в сайтостроении, таким, как HTML, CSS, JavaScript, PHP, но в нем также имеются разделы самоучителя, в которых очень сжато, но в то же время довольно познавательно объясняются основы этих языков с приведением наглядных примеров.

Также, можно отметить справочный интернет-ресурс в котором имеется довольно полная информация по современным версиям HTML5 и CSS3, куда также включены учебные курсы по веб-технологиям.

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

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

А теперь, перейдем к составлению каркаса HTML-страницы, т.е. к формированию ее основных блоков. Ниже, показано, как будет выглядеть наш каркас, построенный на основе дизайн-макета сайта, созданного ранее в статье Создаем дизайн-макет веб-страницы.

Для того, чтобы записать HTML-код каркаса в файл «index.html», его нужно открыть в текстовом редакторе Notepad++ и набрать код, пользуясь приведенным примером, либо его туда скопировать.

Вот так должен выглядеть HTML-код файла «index.html» в текстовом редакторе Notepad++, составленный в соответствии с приведенным примером.

Рассмотрим, более подробно то, что изображено на рисунке.

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

Поэтому, если не будет такого указания, то браузер, попросту «запутается» при обработке страницы. В данной строке, в частности указано, что документ создан на языке html версии 5.

Более подробно об элементе можно посмотреть в справочнике htmlbook.ru по ссылке .

Далее, идут элементы, называемые «тегами» — символы, заключенные в угловые скобки. Эти элементы, в своем роде являются конструкцией языка, указывающей браузеру, что нужно делать, и по существу, являются основой языка HTML.

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

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

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

Таким образом, во 2-ой и 17-ой строках указан тег «html», который, по существу представляет контейнер со всем содержимым страницы. Этот тег всегда указывается в таком порядке, что любой HTML-код должен быть внутри этого контейнера.

Следующая часть каркаса представляет собой область «head», в который размещаются все специальные теги. Эта область охватывает строки с 3 по 7. Содержащаяся в этой области информация является вспомогательной, и не отображается браузером, за исключением заголовка «title», который показывается на вкладке браузера.

В качестве таких специальных тегов в строке 4 размещен метатег с атрибутом «charset», указывающий на кодировку «utf-8», в строке 5 — тег «title», определяющий заголовок документа, а в 6-ой строке — метатег с атрибутами «name» и «content», предназначенный для краткого описания содержания страницы.

В дальнейшем, по мере выполнения верстки, область «head» будет дополнена и другими специальными элементами.

Следующая область «body», охватывающая строки с 8 по 16, предназначена для размещения форматирующих элементов, отвечающих за создание видимой части веб-страниц.

В соответствии с дизайн-макетом, в нашем случае, область «body» состоит из пяти основных блоков: «Шапка», «Ротатор», «Основное содержание», «Сайдбар» и «Подвал», где:

Что касается парного тега

, находящегося в 9 и 15 строках, то он здесь выполняет функцию блока «обвертки» для задания минимальной и максимальной ширины страницы в заданных пределах резиновой верстки. Этому тегу присвоен атрибут класса «wrapper» для возможности в дальнейшем назначать ему соответствующие стили CSS.

Следует обратить внимание на то, что раньше, до появления 5-ой версии HTML, для создания каркаса обычно использовались блочные элементы «div». Можно и сейчас использовать их для этих целей, в таком виде сайты по-прежнему смогут нормально работать.

Но следует учесть, что с целью придания элементам языка смыслового значения HTML5 дополнен новыми тегами, такими, как «header», «section», «footer» и др. И, следовательно, использования этих новых элементов, будет давать некоторые преимущества по сравнению со старыми версиями языка, так как позволяет лучше понимать структуру веб-страниц. ( Более подробно об особенностях семантической верстки можно посмотреть в статье Определяем способ верстки).

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

Если сейчас в браузере открыть созданную страницу, то можно увидеть только слова, которые содержатся в тегах, размещенных в контейнере «body». Текст же, находящийся в области «head», как было отмечено выше, отображаться не будет. Исключением является заголовок «title» (в нашем случае «Заголовок страницы»), который будет виден на вкладке браузера.

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

Исходные файлы сайта

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

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

Для тех кто не зарегистрирован, можно это сделать на вкладке Регистрация.

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