Меню

Виртуальный хостинг для настройки сайтов



Виртуальный хостинг

Разберем по этапам понятие «виртуальный хостинг» и технологию его создания (настройки). Он представляет собой методику хранения содержимого Web-сайтов с разными именами доменов или хостов на одном сервере. Например, именам www.mystore.com и www.frankspage.com в DNS может соответствовать один и тот же IP-адрес, и Apache обслуживает оба этих сайта (равно как и собственное имя хоста, которое задано директивой ServerName). Какое программное обеспечение нужно для виртуального хостинга? Для обслуживания всех запросов достаточно одного Apache, что упрощает администрирование и позволяет экономить IP адреса. Однако увеличивается вред при взломе, потому что взломщик получает доступ ко всем сайтам.

Протокол НТТР/1.0 не указывает имя хоста. Поэтому ранее виртуальный хостинг был возможен лишь в том случае, когда каждому имени хоста был поставлен в соответствие отдельный IP-адрес (с последующим созданием IP-псевдонимов, указывающих на одну и ту же Ethernet-карту). Каждый виртуальный хост определялся по IP-адресу, и запрос, приходящий от Web-браузера, всегда получал в ответ страницу соответствующего Web-сайта. Недостатком такого подхода было то, что привязка больших блоков IP-адресов к одной и той же карте становилась громоздкой и приводила и к излишнему потреблению адресного IP-пространства.

С появлением версии протокола НТТР/1.1 данный процесс значительно упростился. Обязательный заголовок Host: указывает искомое имя хоста, поэтому виртуальные хосты, различаемые по имени, стали нормой в современном Internet. Клиенты, не поддерживающие заголовка Host: теперь чрезвычайно редки. Далее обсуждается исключительно новый вариант виртуального хостинга. Если вы заинтересованы в использовании виртуального хостинга на базе IP-адресов, обратитесь к документации, имеющейся на Web-сайте Apache.

Большая часть файла httpd.conf определяет сервер по умолчанию — глобальный набор определений, применяющихся ко всем запросам, получаемым сервером Apache. В сервере по умолчанию директива ServerName используется в первую очередь для конструирования URL-перенаправления с кодом 301. Можно также воспользоваться небольшим набором директив, отменяющим глобальные настройки в том случае, когда заголовок Host: совпадает с определенным именем хоста. Такие наборы правил и представляют собой виртуальные хосты.

Предположим, что сервер называется stripes.somewhere.com. Его имя задано в главной директиве ServerName. Для настройки виртуального хостинга по именам следует воспользоваться директивой NameVirtualHost с аргументом * (этот символ-заместитель означает «все хосты»), за которой следует необходимое число различных блоков :

Пример блока VirtualHost:

Внутри контейнера директива ServerName определяет имя хоста. Директива DocumentRoot указывает, где находится корневой каталог файловой системы для приходящего запроса, a ErrorLog и CustomLog — альтернативные log файлы для каждого виртуального хоста. ServerAlias позволяет перечислить псевдонимы виртуального хоста. В блоке можно включить и любые другие директивы.

Источник

Как настроить виртуальный хостинг

Завоевав невероятную популярность еще в 1996 году, веб-сервер Apache и по сей день является одним из самых распространенных решений для хостинга. По данным британского аналитического агентства Netcraft, его доля на рынке в 2015 году составила почти 51%, что, по сути, является абсолютной монополией. Столь оглушительный успех объясняется целым рядом факторов, но главный из них — гибкость. Сервер поддерживает подключение внешних модулей, работу с различными интерпретаторами языков программирования и базами данных, что делает его поистине универсальным и позволяет работать с любыми типами веб-приложений.

HTTPS-сервер Apache является частью связки веб-серверов (вместе с Nginx), которая используется в качестве основы ПО на хостинге Timeweb. Сегодня наша задача – разобраться с настройками Apache и установкой виртуального хостинга.

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

Установка и настройка виртуального хостинга позволит Вам:

  • обеспечить работу на VDS нескольких сайтов;
  • разграничить доступ к администрированию данных отдельных сайтов, размещенных на виртуальном хостинге;
  • работать с базовой частью — virtual host – для каждого сайта.

Файл .htaccess

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

Управление конфигурацией осуществляется посредством директив – языка, на котором, собственно, и работает веб-сервер Apache: директивы прописываются в текстовых файлах (уже упомянутых httpd.conf и .htaccess).

Полный перечень директив может достигать сотен и тысяч пунктов – смысла даже просто перечислять их нет. Куда важнее сосредоточиться на более актуальных, доступных для редактирования директивах. Нас будут интересовать следующие файлы:

Читайте также:  Настройка драйвера радеон для игр

Отметим, что в текстовых файлах с директивами довольно много «лишней» для пользователя информации. В основном это комментарии-разъяснения, которые не несут никакой функциональной нагрузки. То есть просто информация, описание того, за что отвечает та или иная директива. Если установка и настройка виртуального хостинга для Вас – дело новое, их можно удалить, предварительно сохранив копию конфигурационного файла для изучения. Нефункциональные пояснительные строки обозначены в документе знаком решетки: #.

Файл httpd.conf

Установка виртуального хостинга завершается этапом внесения изменений в httpd.conf и проверки работоспособности сервера после их сохранения.

Самыми важными директивами, на которые нужно обратить внимание в этом конфигурационном файле, являются:

  • ServerName – отвечает за то, какое имя будет присвоено основному серверу;
  • ServerAlias;
  • NameVirtualHost;
  • VirtualHost.

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

Отметим, что директивы (команды) ServerName не нужно путать с NameVirtualHost. Последние отвечают за имена как раз виртуальных серверов.

И ещё об именах и о преобразовании численных адресов (IP) в имена доменные. В файле httpd.conf можно найти директиву HostnameLookups. Значения on и off, соответственно, позволяют преобразовать численные IP-адреса в доменные имена. Хотя теоретически значение on должно увеличить нагрузку на мощности сервера, этого обычно не происходит.

Файл srm.conf

Файл srm.conf включает директивы, которые позволяют управлять структурой каталогов, расположенных на сервере. Главными среди них являются DocumentRoot и UserDir, а также DirectoryIndex.

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

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

Настройки .htaccess

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

Базовые приемы

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

Задаем индексный файл

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

Когда пользователь переходит по ссылке site-name.ru, он попадает в корневой каталог проекта. При этом происходит загрузка индексного файла, представляющего собой главную страницу сайта. В том случае, если таковой отсутствует в директории, веб-сервер Apache возвращает ошибку 403 (Forbidden, отказано в доступе).

Какой именно файл считать индексным, определяет директива DirectoryIndex. В большинстве случаев, в ней перечислены следующие варианты: index.php, index.html и index.htm. Но что делать, если Вы используете CMS, написанную, к примеру, на Python? Тогда можно указать индексный файл самостоятельно, добавив в .htaccess всего одну строчку. Для index.py она будет выглядеть следующим образом:

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

Устанавливаем страницы ошибок

.htaccess позволяет задавать собственные страницы ошибок в виде статичных документов. Эта опция весьма полезна, так как позволяет скрыть от злоумышленников версию CMS (в том случае, если страница генерируется на уровне движка) или сервера. Для этого можно воспользоваться следующим шаблоном:

Так, для самой известной ошибки “404 страница не найдена” директива будет такой:

Управляем кодировкой

Довольно часто при работе с CMS можно столкнуться с проблемой отображения текстовой информации. Как правило, это происходит из-за ошибок в кодировке. .htaccess позволяет принудительно переопределить ее значение:

В примере выше мы дали понять Apache, что все документы с расширением .html и .htm необходимо отдавать в кодировке UTF-8.

Боремся с воровством

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

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

Читайте также:  Не сохраняется настройки в архейдж

Включаем проверку HTTP_REFERER

Меняем запрошенный файл на картинку с логотипом Вашего проекта:

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

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

Оптимизируем работу сайта

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

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

Перечисляем расширения файлов, которые хотели бы закэшироовать

Устанавливаем время хранения кэша полгода (в секундах)

Кэшировать таблицы стилей и JavaScript следует на менее продолжительное время:

Время жизни кэша составляет 1 день (также в секундах)

Динамические скрипты лучше вообще исключить из кэша во избежание ошибок при обновлении страниц:

Источник

Виртуальный хостинг или виртуальный сервер — что выбрать?

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

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

Как устроен традиционный хостинг?

Чтобы веб-сервер мог обслуживать различные сайты, были придуманы т.н. name based virtual host. Протокол HTTP предполагает возможность передачи в составе запроса URL (единого указателя ресурса) — это позволяет сервису понять, к какому именно сайту обращается браузер или иная клиентская программа. Остается только привязать доменное имя к нужному IP-адресу и прописать в конфигурации корневой каталог для виртуального хоста. После этого можно разложить файлы сайтов разных пользователей в их домашние каталоги и открыть доступ по FTP для администрирования.

Чтобы веб-приложения на стороне сервера (различные скрипты или даже системы управления контентом — CMS) запускались с правами того или иного пользователя хостинга, в Apache был создан специальный механизм suexec. Понятно, что настройки безопасности веб-сервера не позволяют пользователям лезть в чужой огород, но в целом это действительно похоже на коммунальную квартиру с раздельными комнатами и общим адресом (IP) на сотни сайтов. Сервер баз данных (обычно MySQL) для виртуальных хостов тоже общий, но доступ у пользователя хостинга есть только к его личным базам. Все программное обеспечение сервера кроме скриптов сайта обслуживается провайдером, менять его конфигурацию по своему усмотрению клиенты не могут. Процесс управления аккаунтами автоматизирован: для этих целей у каждого хостера есть специальная веб-панель, через которую можно управлять услугами.

Как устроены VPS?

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

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

Читайте также:  Настройка rocket m2 в режиме репитера

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

Какой вариант проще и удобнее?

Виртуальный хостинг не требует администрирования обеспечивающего работу сайта окружения. Клиенту не придется самому устанавливать, настраивать и обновлять системное и прикладное ПО, а в ряде случаев панель управления хостингом позволяет устанавливать и CMS — такой вариант выглядит привлекательным для новичков. С другой стороны задачи тонкой настройки CMS все равно придется решать самостоятельно, к тому же за относительно низким порогом входа прячется меньшая гибкость решения. Выбор софта будет ограничен: на виртуальном хостинге нельзя, например, по своему желанию поменять версию PHP или MySQL, а тем более установить какой-нибудь экзотический пакет или выбрать альтернативную панель управления — придется пользоваться предложенными поставщиком услуг средствами. Если провайдер проведет обновление сервера, в ваших веб-приложениях могут возникнуть проблемы программной совместимости.

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

Какой вариант безопаснее и надежнее?

Может показаться, будто размещение сайтов на традиционном хостинге безопаснее. Ресурсы разных пользователей надежно изолированы друг от друга, а за актуальностью программного обеспечения сервера следит провайдер — это отличный вариант, но только на первый взгляд. Злоумышленники далеко не всегда эксплуатируют уязвимости в системном ПО, обычно сайты взламывают, используя незакрытые дыры в скриптах и небезопасные настройки систем управления контентом. В этом смысле никаких преимуществ у традиционного хостинга нет — ресурсы клиентов работают на тех же самых CMS — зато недостатков хватает.

Главная проблема виртуального хостинга заключается в общем IP-адресе для сотен сайтов разных пользователей. Если кого-то из ваших соседей взломают и начнут, например, рассылать через него спам или проводить другие вредоносные действия, общий адрес может попасть в различные черные списки. В этом случае пострадают все клиенты, чьи сайты используют тот же IP. Если сосед попадет под DDoS-атаку или создаст чрезмерную нагрузку на вычислительные ресурсы, пострадают остальные «жильцы» сервера. Управлять выделением квот для отдельных VPS провайдеру намного проще, к тому же виртуальному серверу присваивается отдельный IP и необязательно один: можно заказать любое их количество, дополнительный сервис по защите от DDoS, антивирусный сервис и т.д. В смысле безопасности и надежности VPS превосходит традиционный хостинг, нужно только своевременно обновлять установленные программы.

Какой вариант дешевле?

Еще несколько лет назад ответ на этот вопрос был однозначным — при всех ее недостатках комната в коммуналке была намного дешевле отдельной квартиры. Отрасль не стоит на месте и сейчас на рынке появилось множество бюджетных VPS: у нас можно арендовать собственный виртуальный сервер на Linux за 130 рублей в месяц. В среднем месяц работы бюджетного VPS обойдется клиенту в 150 — 250 рублей, при таких ценах мириться с проблемами традиционного хостинга нет смысла, кроме случая, когда на сервере нужно разместить простейшие сайты-визитки. К тому же тарифные планы виртуального хостинга ограничивают количество сайтов и баз данных, а на VPS клиент ограничен только емкостью накопителя и вычислительными возможностями сервера.

Источник

Adblock
detector