Обзор и рейтинг хостингов

Что такое Apache? Это программное обеспечение с открытым исходным кодом, веб-сервер, который обеспечивает работу около 46% сайтов по всему миру. Официальное название – Apache HTTP Сервер , поддерживается и развивается компанией Apache Software Foundation.

Веб-сервер позволяет владельцам сайтов обслуживать их контент в интернете, о чём понятно с самого название “веб-сервер”. Apache один из самый старых и надёжный веб-серверов с первой версией выпуска более 20 лет назад в 1995 году.

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

В Hostinger в нашей инфраструктуре использует Apache в параллели с NGINX, другим популярным веб-сервером. Эта связка позволяет нам взять все преимущества от обоих. Это очень улучшает производительность путём компенсации слабых сторон одного сильными сторонами другого.

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

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

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

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

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

Хоть Apache и называется веб-сервер, но в реальном положении вещей он является не сервером, а программой, которая запускается на сервере. Его задача установить соединение между сервером и браузером посетителей (Firefox, Google Chrome, Safari и др.) при доставке файлов туда и обратно между ними (клиент-серверная структура). Apache – это кроссплатформенное программное обеспечение, что значит оно хорошо работает как на Unix, так и на Windows серверах.

Когда посетитель хочет загрузить страницу вашего сайта, например, домашнюю страницу или страницу “О нас”, его браузер отправляет запрос на ваш сервер и Apache возвращает ответ со всеми запрошенными файлами (текст, изображение и так далее). Сервер и клиент взаимодействуют по протоколу HTTP и Apache ответственен за гладкое и безопасное соединение между двумя машинами.

Apache хорошо и удобно настраиваемый поскольку имеет модульную структуру. Модули позволяют администраторам сервера включать или выключать дополнительную функциональность. У Apache есть модули безопасности, кэширования, редактирования URL, аутентификации по средством пароля и другие. Вы можете установить свою собственную конфигурацию через файл .htaccess , который является файлом настроек для Apache и поддерживается всеми тарифными планами Hostinger .

Apache и другие веб-сервера

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

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

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

Что такое веб-сервер Apache и для чего он нужен?

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

Мы это сделали следующим образом: в корне диска С создали папку Server, внутри которой создали еще четыре папки: apache, tmp, www, log, php. Не все папки мы будем использовать в данной инструкции. Всё это отображено на рисунке ниже.

В папке www мы создали простой , который назвали Index.html со следующим содержимым:

Проверочная страница

Apache в действие

< ! DOCTYPE html >

< html lang = "ru-RU" >

< head >

< meta charset = "UTF-8" >

< title > Проверочнаястраница< / title >

< link rel = "stylesheet" type = "text/css" href = "style.css" / >

< / head >

< body >

< h1 > Apache вдействие< / h1 >

< / body >

< / html >

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

Последнее обновление: 20.10.2017

Загрузим пакет веб-сервера Apache с сайта http://www.apachelounge.com/ . Выберем последнюю версию сервера. На странице загрузок мы можем найти две версии пакета Apache - для 64-битных систем и для 32-битных.

Перед установкой Apache следует отметить, что если наша ОС Windows, то в системе должны быть установлен пакет для C++, который можно найти по адресу для 64-битной и для 32-битной .

После загрузки пакета с Apache распакуем загруженный архив. В нем найдем папку непосредственно с файлами веб-сервера - каталог Apache24 . Переместим данный каталог на диск C, чтобы полный путь к каталогу составлял C:/Apache24 .

Теперь нам надо установить Apache в качестве службы Windows. Для этого запустим командную строку Windows от имени администратора и перейдем в каталог веб-сервера с помощью команды

httpd.exe -k install

Если установка завершится удачно, то в командная строка отобразит сообщение "The Apache2.4 service is successfully installed". Также будет проведено тестирование сервера:

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

После установки проведем конфигурацию сервера, чтобы связать его с ранее установленным интерпретатором PHP. Для этого в папке C:\Apache24\conf найдем файл httpd.conf и откроем его в текстовом редакторе.

Файл httpd.conf настраивает поведение веб-сервера. Мы не будем подобно затрагивать его описания, а только лишь произведем небольшие изменения, которые потребуются нам для работы с PHP.

Во-первых, найдем строку

Listen 80

Это строка указывает на прослушиваемый порт. По умолчанию 80-й порт. Если конфликтов с портами не возникает можно оставить так, как есть. Я же изменю на 8080 порт.

#ServerName www.example.com:80

и изменим на

ServerName localhost:8080

Теперь подключим PHP. Для этого найдем в файле httpd.conf конец блока загрузки модулей LoadModule

//...................... #LoadModule watchdog_module modules/mod_watchdog.so #LoadModule xml2enc_module modules/mod_xml2enc.so

И в конце этого блока добавим строчки

LoadModule php7_module "C:/php/php7apache2_4.dll" PHPIniDir "C:/php"

DocumentRoot "c:/Apache24/htdocs"

По умолчанию в качестве хранилища документов используется каталог "c:/Apache24/htdocs". Заменим эту строку на следующую:

DocumentRoot "c:/localhost"

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

ErrorLog "logs/error.log"

И заменим ее на

ErrorLog "c:/localhost/error.log"

CustomLog "logs/access.log" common

И заменим ее на

CustomLog "c:/localhost/access.log" common

И также найдем блок и добавим в него две строчки:

AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

И в конце найдем блок :

DirectoryIndex index.html

И заменим его на следующий:

DirectoryIndex index.html index.htm index.shtml index.php

Это минимально необходимая конфигурация, которая нужна для работы с PHP. Чтобы управлять сервером (запускать, останавливать, перезапускать), мы можем использовать утилиту, которая идет в комплекте - . Данную утилиту можно найти в каталоге C:\Apache24\bin

Запустим утилиту. В трее появится значок ApacheMonitor. Нажмем на него и в появившемся контекстном меню выберем пункт Start.

Если у нас все настроено правильно, то должен запустить веб-сервер.

Теперь наша задача - убедиться, что php подключен и работает правильно. Для этого перейдем в папку c:/localhost , которую мы создали для хранения документов, и добавим в нее обычный текстовый файл. Переименуем его в index.php и внесем в него следующее содержание:

В данном случае мы создали простейший скрипт, который выводит общую информацию о PHP. Теперь обратимся к этому скрипту, набрав в строке браузера адрес http://localhost:8080/index.php

Что тут произошло? При обращении к сайту на локальной машине в качестве адреса указывается http://localhost . Так как мы указали в качестве порта 8080, то также в адресе указывается через двоеточие порт. Если бы мы использовали 80-й порт, который используется по умолчанию, то его не надо было указывать.

Затем указывается имя ресурса, к которому идет обращение. В данном случае в качестве ресурса используется файл index.php . И так как в файле httpd.conf в качестве хранилища документов веб-сервера указан каталог C:\localhost , то именно в этом каталоге и будет веб-сервер будет производить поиск нужных файлов.

И поскольку выше при конфигурировании мы указали, что в качестве главной страницы может использоваться файл index.php , то мы можем также обратиться к этому ресурсу просто http://localhost:8080/

На этом установка и настройка веб-сервера Apache завершена, и мы можем создавать свои сайты.

Apache - это популярнейший свободный веб-сервер. Состоянием на 2016 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.

Установить Apache в Linux можно с помощью нескольких команд, но программа предоставляет очень большое количество настроек, которые можно изменить, а также модулей, после включения которых она будет работать лучше. В этой статье будет рассмотрена установка и настройка Apache, в качестве основной системы мы будем использовать Ubuntu, но вы можете повторить эти действия в любом другом дистрибутиве. Будет рассмотрена не только установка самой программы, но и способы ее настройки, настройка виртуальных хостов apache, а также самые полезные модули.

На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:

sudo apt update
$ sudo apt upgrade

Затем установка apache2:

sudo apt install apache2

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

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

sudo systemctl enable apache2

Настройка Apache

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

Все настройки содержатся в папке /etc/apache/:

  • Файл /etc/apache2/apache2.conf отвечает за основные настройки
  • /etc/apache2/conf-available/* - дополнительные настройки веб-сервера
  • /etc/apache2/mods-available/* - настройки модулей
  • /etc/apache2/sites-available/* - настойки виртуальных хостов
  • /etc/apache2/ports.conf - порты, на которых работает apache
  • /etc/apache2/envvars

Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.

Сначала давайте рассмотрим главный файл конфигурации:

vi /eta/apache2/apache2.conf

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

KeepAlive On - очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.

MaxKeepAliveRequests 100 - максимальное количество запросов за одно соединение, чем больше, тем лучше.

KeepAliveTimeout 5 - таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.

User, Group - пользователь и группа, от имени которых будет работать программа.

HostnameLookups - записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.

LogLevel - уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error

Include - все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.

Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:


Параметр значение

Здесь доступны такие основные опции:

AllowOverride - указывает нужно ли читать.htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All - разрешать все, None - не читать эти файлы.

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

Options - указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All - разрешить все, FollowSymLinks - переходить по символическим ссылкам, Indexes - отображать содержимое каталога если нет файла индекса.

Require - устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied - всем запретить, Require all granted - всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.

Order - позволяет управлять доступом к директории. Принимает два значения Allow,Deny - разрешить для всех, кроме указанных или Deny,Allow - запретить для всех, кроме указанных..ru.

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

У нас остался файл /etc/apache2/ports.conf:

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

Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.

Настройка сервера Apache через htaccess

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

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

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

Order Deny,Allow
Deny from all

Запрещает всем доступ к этой папке, важно применить, для папок с конфигурацией. Чаще всего.htaccess используется для работы с модулем mod_rewrite, который позволяет изменять запросы на лету:

RewriteEngine on
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]

Но это очень обширная тема и выходит за рамки этой статьи.

Настройка модулей Apache

Как я уже говорил, Apache - модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.

Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:

Включить модуль можно командой:

sudo a2enmod имя_модуля

А отключить:

sudo a2dismod имя_модуля

После включения или отключения модулей нужно перезагрузить apache:

sudo systemctl restart apache2

Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:

vi /etc/apache2/mods-available/deflate.load

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

Настройки модулей находятся в той же папке, только в файле с расширением.conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:

vi /etc/apache2/mods-available/deflate.conf

Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:

a2enconf имя_модуля

a2disconf имя модуля

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

sudo a2enmod expires
$ sudo a2enmod headers
$ sudo a2enmod rewrite
$ sudo a2enmod ssl

Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.

Настройка виртуальных хостов Apache

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

Настройки хостов Apache расположены в папке /etc/apache2/hosts-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:

  • ServerName - основное имя домена
  • ServerAlias - дополнительное имя, по которому будет доступен сайт
  • ServerAdmin - электронная почта администратора
  • DocumentRoot - папка с документами для этого домена

Например:

vi /etc/apache2/sites-available/test.site.conf

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

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

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

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

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

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

Что такое рейтинг хостингов и для чего создан сайт?

Задача рейтинга не только выявить лучшего хостинг-провайдера и рассказать об этом другим пользователям. Но и показать людям те компании, с которыми связываться просто не стоит. Это безусловно позволяет пользователям делать правильный выбор.
В нашем рейтинге представлены сотни провайдеров из России, Украины, Беларуси и США. Благодаря собственным алгоритмам оценки услуг и тысячам отзывов простых людей, нам удается поддерживать объективность рейтинга и предоставлять достоверную информацию о качестве.

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то