Варианты хостинга
Классически существуют несколько видов хостинга:
- виртуальный сервер (или shared хостинг)
- виртуальный выделенный сервер (VPS или VDS)
- выделенный сервер
В последнее время популярность приобрел новый вид — «Облачный хостинг».
При работе на shared (разделенном) хостинге все ресурсы сервера распределяются между несколькими сотнями (реже — десятками) аккаунтов, размещенных на этом сервере. Как правило, имеются ограничения на доступное дисковое пространство и выделяемые ресурсы. В большинстве случаев для сайтов с небольшой посещаемость и разумными требованиями к ресурсам это оптимальный выбор, поскольку настройкой и мониторингом серверов занимаются специально обученные люди, которые оперативно устраняют проблемы.
Возможные проблемы заключаются в недостаточности ресурсов под большой проект и возможные замедления работы сайтов в часы пиковых нагрузок (когда растет число обращений ко всем сайтам на сервере) или при резкой нагрузке на какой-либо аккаунт. Вместе с тем, в задачи хостера входит мониторинг таких ситуаций и разгрузка серверов путем переноса тяжелых аккаунтов на другие площадки.
Среди нюансов, на которые следует обратить внимание — выделяемые ресурсы и скорость работы сайта в пиковые часы.
Выделенный сервер — это физический компьютер, отданный вам в полное распоряжение. Вы можете рассчитывать на все ресурсы сервера, а администрирование выполнять самостоятельно или с помощью администраторов хостера.
Виртуальный выделенный сервер — это программная эмуляция реального сервера. На одном реальном сервере может быть несколько виртуальных, и ресурсы реального сервера будут поделены между виртуальными (в том числе мощность процессора и объем оперативной памяти). В этом случае вы получаете все преимущества выделенного сервера, но по меньшей цене, и а также — все недостатки, связанные с необходимостью его администрировать.
Облачный хостинг представляет из себя систему виртуальных серверов, которая при увеличении нагрузки выделяет для вашего аккаунта дополнительные виртуальные сервера, а при уменьшении нагрузки — уменьшает число выделенных серверов.
Специфика платформы 1С-Битрикс в отношении хостинга следующая:
- Достаточность места на диске и возможность создавать большое количество файлов.
Являясь Framework, платформа 1С-Битрикс содержит очень большое число файлов, распределенных в основном по модулям, компонентам и шаблонам. Кроме того, встроенный механизм кэширования создает на диске сервера как минимум один файл на каждую страницу или виртуальную страницу — например, на новость или элемент каталога. Естественно, что это требует ресурсов.
На начало 2010 года минимальными требованиями к проектам на 1С-Битрикс можно считать размер диска в 300 мегабайт, а для интернет-магазинов с большим числом картинок к товарам — от 1 Гб. Важно помнить, что каждая картинка также занимает место на диске.
- Наличие необходимых ресурсов на сервере — памяти, выделяемой скриптом, наличие акселератора PHP и некоторых других настроек.
Для работы Битрикс в настоящее время (2010 год) необходимо как минимум 32 мб памяти, выделяемой для PHP. Этого значения достаточно для работы сайтов-визиток или информационных сайтов, для работы более серьезных проектов (например, интернет-магазинов) необходимо больше памяти. Она расходуется на построение структуры данных и выполнение кода при вызове каждой страницы сайта. Использование кэширования бинарного представления PHP кода позволяет существенно ускорить работу сайта и снизить общую нагрузку сервера.
- Желательность двухуровневой архитектуры для работы сайтов с высокой посещаемостью или серверов с высокой загрузкой
Для этого устанавливается дополнительный веб-сервер (обычно nginx), который принимает все запросы. Оптимально, если nginx обрабатывает статические страницы (стили, картинки, скрипты) сам, а запросы к динамическим страницам (php) передаёт на Apache. Это позволяет стабилизировать использование памяти за счёт ограничения числа процессов Apache и получить отказоустойчивую систему.
Однако, даже если все запросы передаются Apache, то за счет более быстрой обработки страниц и быстрого освобождения выделяемой памяти достигается повышение производительности в несколько раз.
- Достаточно быстрый сервер баз данных.
Для работы сайтов необходимо, чтобы сервер баз данных успевал обрабатывать запросы за достаточно короткое время. Платформа Битрикс умеет работать как с MySQL — основной базой данных на хостингах, так и с СУБД промышленного уровня — Oracle и Microsoft SQL Server. Для MySQL рекомендуется хранение таблиц в формате InnoDB.
- Желательность работы PHP и FTP/SSH от одного и того же пользователя.
При разработке сайта обычно работают с файлами по ftp/sftp протоколу. При этом при работе в самой системе она создает файлы от имени того пользователя, под которым работает PHP. При несовпадении этих пользователей могут возникнуть серьезные проблемы в работе сайта или в возможностях его модификации. Описание возможных проблем будет дано ниже.
Частично соответствие хостинга требованиям системы можно протестировать встроенным в «1С-Битрикс: Управление сайтом» средствами — модулем «Монитор производительности». Также существует отдельный скрипт для тестирования хостинга. Рекомендуем запускать его перед установкой, красным цветом будут показаны параметры, не удовлетворяющие требованиям продукта.
Часто встречается мнение о колоссальном размере «1С-Битрикс: Управление сайтом», его медленной работе и высоких требованиях к хостингу. Это утверждение не совсем верно. Действительно, благодаря большому числу возможностей и наличия готовых компонент почти под любую задачу, «1С-Битрикс» занимает на диске от 100 мб и больше, а сложная структура страницы требует для ее обработки определенного объема памяти.
Однако, благодаря своей архитектуре платформа «Битрикс» позволяет легче переносить большие нагрузки, а для малых нагрузок достаточно самого обычного хостинга (в варианте «виртуальный сервер»), не загруженного другими клиентами «завязку».
При выборе хостинга нужно обратить внимание, что один и тот же оператор может со временем улучшить или ухудшить свои характеристики. Для нахождения проблем рекомендуем использовать возможности модуля «Монитор производительности»/
Критерии подборки хостинга под «Битрикс». Как выбрать подходящий хостинг?
«1С-Битрикc» рекомендует выбирать для хостинга партнеров, имеющих специальную компетенцию — хоcтинг PHP или хостинг .NET. В этом случае вероятность некорректной настройки хостинга минимальна.
Однако и другие хостинг-провайдеры предоставляют качественный хостинг. Основными критериями выбора является:
- Достаточность ресурсов (памяти — от 32 мб, дискового пространства — от 100 мб, времени выполнения скриптов (не менее 30 секунд))
- Соответствие настроек рекомендациям «1С-Битрикс» (двухуровневая архитектура, настройки PHP и веб-сервера)
- Возможность редактировать файлы и через веб-интерфейс, и с помощью ssh/ftp
Хорошим подспорьем являются отзывы других пользователей этого хостинга или партнеров «1С-Битрикс».
Основные проблемы и их решение при работе 1С-Битрикс на хостинге
-
Перенос сайта на хостинг лучше всего выполнять встроенными в «1С-Битрикс» средствами резервного копирования/восстановления.
Несмотря на то, что фактически сайт на Битрикс представляет из себя набор файлов и базу данных, копирование файлов напрямую на удаленный сервер в большинстве случаев плохая идея. Из-за большого количества мелких файлов такое копирование может растянуться на несколько часов, кроме того, использование стандартных механизмов позволяет избежать последующих возможных проблем с правами доступа к файлам сайта.
Среди часто возникающих проблем:
- Веб-сервер не может записать в нужную ему папку или удалить временные файлы. Среди последствий:
- Невозможность обновления продукта
- Невозможность редактировать сайт через веб-интерфейс
- Некорректная работа компонента кэширования
- и другие проблемы.
Например, встречаются даже такая ситуация, когда битрикс создавал временные файлы, но права хостинга не позволяли удалить их. В результате через день работы аккаунт был заблокирован за превышение дисковой квоты.
Самым простым решением в этом случае будет установка прав на все файлы и папки 777 (для unix платформы) либо любой другой способ дать PHP запись на эти файлы.
- Нет возможности отредактировать через ftp/ssh файлы, созданные через веб-интерфейс. В этом случае многим веб-разработчикам будет сложно дорабатывать сайт.
Одним из простых, но не всегда работающих решений, является установка параметров в файле dbconn.php, позволяющих всем редактировать создаваемые через битрикс файлы.
define("BX_FILE_PERMISSIONS", 0666);
define("BX_DIR_PERMISSIONS«, 0777);Однако для файлов, созданных через ftp/ssh, вам прийдется периодически изменять права вручную, либо, если хостинг это поддерживает, устанавливать параметр umask.
- Веб-сервер не может записать в нужную ему папку или удалить временные файлы. Среди последствий:
- При переносе сайта на хостинг могут возникнуть различные нюансы из-за настроек PHP:
- Проблемы с несоответствием владельца файлов: на ряде хостингов PHP работает от имени одного пользователя, а доступ по ftp/ssh предоставлен другому. В этом случае файлы, созданные одним методом, могут быть недоступны для модификации, или вообще вызывать ошибку выполнения из-за нарушения параметров безопасности.
- Проблемы с настройками безопасности: возможны различные варианты подключения PHP к веб-серверу, и в некоторых из этих вариантов устанавливаются жесткие ограничения на владельца файла и права на файл. В этом случае возможны ошибки с кодом 500, и разобраться в проблеме вам поможет только журнал ошибок веб-сервера.
Пример: На многих хостингах, если PHP подключен как CGI, требуется соответствие владельца файла и прав на файл: если владелец файла — не ваш аккаунт или права на файл допускают запись всем пользователям, PHP будет вызывать ошибку. В этом случае необходимо установить корректные права на файлы и папки, а также правильные параметры в dbconn.php
- Ограничения на время выполнения скрипта или на другие выделяемые ресурсы. В этом случае сайт может вести себя странно — то открываться, то не открываться и показывать белый экран.
Пример: Особо чувствительны к размеру памяти и времени выполнения различные скрипты импорта-экспорта данных. Если у вас возникают ошибки — проверяйте доступность ресурсов на хостинге, в случае их нехватки смените хостера.
- Проблемы с использованием кодировки utf-8 на хостинге. Выясните, поддерживается ли она (необходимо наличие библиотеки mbstring и возможность установки параметра bpgp: mbstring.func_overload=2).
- Другие проблемы, специфичные для вашего хостера. Для их устранения рекомендуем заранее протестировать работу сайта на выбранном вами хостинге и заручиться контактами специалистов службы поддержки провайдера.
- Возможные проблемы при работе с многосайтовостью в Битрикс. Проверьте, что ваш хостинг позволит огранизовать многосайтовость выбранным вами методом. Не все провайдеры позволяют корректно (для «1С-Битрикс: Управление сайтом») создавать дополнительные сайты.
- Некоторые хостинги не позволяют отправлять почту без авторизации. В этом случае для отправки письма с сайта вам необходимо будет переопределять функцию отправки почту в соответствии с документацией к продукту.
Платформа для разработки проектов на «1С-Битрикс»
Специально для хостинг-провайдеров и разработчиков компания «1С-Битрикс» выпускает оптимально настроенную виртуальную машину. Ее удобно установить и вести на ней разработку, а в случае настройки своего сервера — подсмотреть параметры программного обеспечения или просто развернуть ее в качестве операционной системы сервера.