Блог компании DinoHost.ru

Архив ‘В мире хостинга’

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

Среда, 26 Ноябрь, 2008

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

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

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


Php-скрипты: отдача и конвертация в статистику посредством nginx

Понедельник, 24 Ноябрь, 2008

Давайте представим себе следующую довольно распространенную ситуацию: ваш сайт создан посредством php-скриптов и базы данных MySQL. У каждого вебмастера рано или поздно наступает такой момент, когда сервер, на котором расположен ваш сайт, перестает нормально работать из-за резкого увеличения количества запросов пользователей. Что делать в подобной ситуации? Если вы искусственного ограничите количество запросов, тем самым вы отбросите ваших посетителей. Нарастить мощность сервера – слишком дорого, а на оптимизацию скриптов попросту нет времени. В этой ситуации вам поможет тотальная конвертация всего сайта в статический HTML код, после чего отдача кода при помощи nginx.

Для того, чтобы выполнить указанные меры решения проблемы, необходимо определить дискретность, отвечающую за обновление информации и с помощью команды wget сделать зеркальную копию сайта:
wget -m -q -k http://мой.домен/
Далее зеркальную копию сайта необходимо синхронизировать с директорией, из которой файлы будет обрабатывать nginx (предположим, что это /usr/local/html):
rsync -tgu –delete –force мой.домен /usr/local/html
Синхронизируем те файлы, которые при помощи команды wget не были скопированы в зеркальную копию, например, *.js - java скрипты:
rsync -a –include ‘*/’ –include ‘*.js’ –exclude ‘*’ /путь/к/файлам/сайта/ /usr/local/html/
В принципе вы сделали все, что нужно. Теперь осталось дело за малым: нужно запускать этот код каждый час (или реже), что позволит перенести всю нагрузку на nginx.
Если вам необходим сохраненный доступ к CMS для администрирования сайта, нужно добавить любой поддомен сайта на реальный IP и при необходимости войти в админку обращаться к нему


Работаем с HyperVM

Понедельник, 24 Ноябрь, 2008

HyperVM – это детище компании Lxlabs, предназначенное для управления виртуальными серверами (VPS/VDS), оснащенными web-интерфейсами HyperVM. С помощью этой панели управления можно управлять разными виртуальными серверами, созданными на разных платформах посредством различных технологий. Главное преимущество HyperVM заключается в исключительной простоте управления, для которой не требуются глубокие знания технологий виртуализации.

В данный момент HyperVM поддерживает технологии аппаратной виртуализации Xen и программной OpenVZ. В планах разработчиков HyperVM в ближайшее время ввести поддержку Windows и Solaris. Эти изменения позволят управлять данными системами с помощью единой консоли.

Виртуализация, которая раньше применялась в мэнфреймах на платформе Intel полностью поддерживается посредством разнообразных технологий, имеющих достоинства и недостатки. HyperVM помогает объединить и упростить управление виртуализацей и управлять любыми VPS, а также совершать любые действия с центральной консоли.


MySQL и работа на русском

Среда, 19 Ноябрь, 2008

Нередко возникает проблема, когда есть два сервера, на которых стоит mysql в cp1251 и стандартная кодировка.

Решить эту распространенную проблему можно с помощью двух очень простых скриптов. Один из них создаст дампы всех баз, кроме системных. А другой поменяет базы с неправильной кодировкой на базы с правильной. Эти скрипты предназначены прежде всего для WHM/cPanel, однако могут использоваться и на других серверах.

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

for i in `mysqlshow | grep -v + | grep -v ‘| Databases |’ | cut -d ‘ ‘ -f2 | grep -v horde| grep -v mysql | grep -v eximstats`; do mysqldump -f –compatible=mysql40 $i > $i.sql; done; tar czf dump1251.tgz *.sql; rm *.sql

В итоге будет создан файл dump1251.tgz. Это архивный файл, в котором будут храниться все дампы sql в нормальной кодировке. Затем переносим этот файл на другой сервер и восстанавливаем с помощью:

for i in `ls *.sql`;do b=`basename $i .sql`;yes | mysqladmin drop $b; mysqladmin create $b; mysql –default-character-set=cp1251 $b

После восстановления архива вопросительные знаки будут заменены русскими буквами.


Устанавливаем cPanel на VDS от keyweb.de вместе

Вторник, 18 Ноябрь, 2008

Виртуальный сервер, работающий по шаблону Fedora Core 4 в стандартной конфмгурации не имеет yum, то есть на такой VDS нельзя поставить другое ПО штатным образом в датацентре.

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

wget ftp://rpmfind.net/linux/fedora/core/updates/4/i386/yum-2.4.1-1.fc4.noarch.rpm
wget ftp://rpmfind.net/linux/fedora/core/updates/4/i386/libxml2-python-2.6.20-1.FC4.i386.rpm
wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/python-elementtree-1.2.6-4.i386.rpm
wget ftp://rpmfind.net/linux/fedora/core/updates/4/i386/rpm-python-4.4.1-23.i386.rpm
wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/python-urlgrabber-2.9.6-1.noarch.rpm
wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/python-sqlite-1.1.6-1.i386.rpm
wget ftp://rpmfind.net/linux/fedora/core/updates/4/i386/rpm-4.4.1-23.i386.rpm
rpm -Uvh *.rpm

Это заставляет yum работать на этом сервере. После установки требуется обновление с помощью yum update.

После установки обновлений можно перейти к установке самой cpanel:

wget http://layer1.cpanel.net/cpanel-universal-install.sea
chmod +x cpanel-universal-install.sea
./cpanel-universal-install.sea

Вот и все.


Как исправить ошибки в DNS зонах?

Понедельник, 17 Ноябрь, 2008

Сервера под управлением ISP System нередко дают сбой, который связан с созданием файлов зон, где для субдомена WWW указывается неправильный IP. То есть после такого сбоя сайты с www открываются нормально, а другие - нет.
Чтобы устранить подобный часто встречающийся сбой необходимо:

1. Заменить неправильные IP в доменных зонах посредством perl: perl -pi.bak -e “s/WRONGIP/CORRECTIP/g” /var/named/*.db, где WRONGIP - некорректный IP, а CORRECTIP - правильный.
2. Увеличить serail доменных зон с помощью скрипта zsu.

Это помогло исправить погрешности в DNS зонах и правильно открывать абсолютно все сайты.


Как оптимизировать VDS под файл-хостинг на nginx?

Понедельник, 17 Ноябрь, 2008

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

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

Давайте поставим на nginx VDS с Fedora Core 2 от keyweb, оснащенный yum:
wget http://download.fedora.redhat.com/pub/fedora/linux/core/2/i386/os/Fedora/RPMS/gcc-3.3.3-7.i386.rpm
wget http://download.fedora.redhat.com/pub/fedora/linux/core/2/i386/os/Fedora/RPMS/pcre-devel-4.5-2.i386.rpm
wget http://download.fedora.redhat.com/pub/fedora/linux/core/2/i386/os/Fedora/RPMS/binutils-2.15.90.0.3-5.i386.rpm
wget http://download.fedora.redhat.com/pub/fedora/linux/core/2/i386/os/Fedora/RPMS/cpp-3.3.3-7.i386.rpm
wget http://download.fedora.redhat.com/pub/fedora/linux/core/2/i386/os/Fedora/RPMS/glibc-devel-2.3.3-27.i386.rpm
wget http://download.fedora.redhat.com/pub/fedora/linux/core/2/i386/os/Fedora/RPMS/glibc-headers-2.3.3-27.i386.rpm
wget http://download.fedora.redhat.com/pub/fedora/linux/core/2/i386/os/Fedora/RPMS/glibc-kernheaders-2.4-8.44.i386.rpm
wget http://download.fedora.redhat.com/pub/fedora/linux/core/2/i386/os/Fedora/RPMS/pcre-4.5-2.i386.rpm
rpm -Uvh *.rpm
wget http://sysoev.ru/nginx/nginx-0.4.13.tar.gz
tar xzf 0.4.13.tar.gz
cd nginx-0.4.13
./configure –prefix=/usr/local/nginx –without-http_charset_module –without-http_ssi_module –without-http_userid_module –without-http_access_module –without-http_auth_basic_module –without-http_empty_gif_module –without-http_gzip_module –without-http_rewrite_module –without-pcre
make -s
make install

После этого nginx установится в /usr/local/nginx с минимумом рабочих функций, то есть самый быстрый.

После чего необходимо настроить новый сервер на тдачу файлов по протоколу http. Напрмер вот так: nginx.conf:

worker_processes 1;
events {
worker_connections 1024;
}

http {
include conf/mime.types;
default_type application/octet-stream;

log_format main ‘$remote_addr - $remote_user [$time_local] $status ‘
‘”$request” $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘;

access_log /dev/null;

tcp_nopush on;
keepalive_timeout 15;

server {
listen ваш_ip:80;
root /home/download;
}
}

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


Как изменить кодировку базы вместе с ее таблицами из командой строки?

Понедельник, 17 Ноябрь, 2008

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

echo “ALTER DATABASE mydb DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;” | mysql; for i in `mysqlshow mydb % | grep -v + | cut -d ‘ ‘ -f2;`; do echo “ALTER TABLE mydb.$i DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;” | mysql ; done

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


Выбираем хостинг: платный или бесплатный?

Среда, 12 Ноябрь, 2008

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

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

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

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

Оборудование для современного хостинга претерпело основательные изменения. Сегодня серьезный хостинг-провайдер использует надежные и специально созданные для предоставления хостинг-услуг сервера.

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

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

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

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

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

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

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

Платный хостинг – обязательный вариант, ели вы размещаете большой и серьезный сайт, для которого важен имидж.

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


Как перенеси аккаунты без даунтаймов в WHM/cPanel?

Понедельник, 10 Ноябрь, 2008

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

Для начала нужно создать копии всех аккаунтов посредством скрипта /scripts/pkgacct, который создает в /home архив аккаунта вида cpmove-имя.tar.gz
Затем перенести аккаунты на тот сервер, куда и хотели. Здесь восстановить аккаунты нам поможет /scripts/restorepkg

После того. Как аккауны перенесены и восстановлены на новом сервере, на старом нужно сменить IP на новый, подходящий для всех DNS записей:
perl -pi.bak -e “s/старыйIP/новыйIP/g” /etc/namedb/*.db
При помощи утилиты zsu возможно автоматом увеличить serial запись. Это обязательное условие, без которого IP не обновится: zsu -fn etc/namedb/*.db

Далее перезагружаем DNS сервис /scripts/restartsrv_named

Обновление IP всех DNS’ах провайдеров займет примерно от 2 до 4 часов. После чего можно удалить аккаунты со старого сервера, но при этом обязательно не забыть сохранить DNS зоны: /scripts/killacct аккаунт n

На следующем этапе на новом сервере устанавливаем в Basic WHM Setup и используем те-же NS, которые используются на старом сервере с обновленным IP.

Далее приступаем к изменениям IP в доменной панеле регистратора.

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