четверг, 18 марта 2010 г.
среда, 24 сентября 2008 г.
Зеркалирование репозитариев Ubuntu
создания зеркала репозиториев, указанных в файле /etc/apt/mirror.list.
sudo apt-get install apt-mirrorМожно закомментировать ненужные строки, поставив в их начало символ решетки (#).
Если же вы хотите загрузить только пакеты main и restricted, поместите решетку перед ‘universe’ или ‘multiverse’, чтобы закомментировать их.
С зеркала, расположенного в вашей стране, загрузка может проходить быстрее.
Отредактировав файл сохраняем его Ctrl+O Ctrl+X
Запускаем копирование выбранных репозитариев
sudo apt-mirrorВ зависимости от сделанных вами изменений, размер загрузки может достигать 40 ГБ, если не больше! К счастью, apt-mirror запоминает, где остановился, если вы отменили его работу, не дождавшись конца, и вы можете выполнять загрузку несколько ночей, пока она не закончится. Все данные сохранятся в /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu и будут готовы к использованию.
Ubuntu уже позаботился о включении соответствующего задания Cron под названием apt-mirror, в закомментированном виде, в /etc/cron.d/.
По умолчанию установлено ежедневное обновление в 16-00, но вы можете изменить это как вам удобнее.
Теперь настраиваем Apache
Делаем ссылку
sudo ln -s /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu /var/www/ubuntu
рестартуем апач
sudo /etc/init.d/apache2 restartТеперь можно использовать свой локальный репозитарий исправив /etc/apt/mirror.list на всех компьютерах локальной сети
пятница, 16 мая 2008 г.
How-to Apache2 и vhost_alias
# apt-get install apache2После установки у нас появилась директория /var/www (здесь расположен сайт по умолчанию. Все документы в этой директории доступны через броузер по адресу http://localhost/ или IP адресу сервера.
ставим PHP5 и MySql
# apt-get install libapache2-mod-php5рестартуем apache
# apt-get install mysql-server
# apt-get install php5-mysql
# /etc/init.d/apache2 restartПроверяем работу PHP
# echo "<?php echo phpinfo() ?>" > /var/www/info.phpсмотрим броузером http://localhost/info.php и видим результат работы PHP.
если предлагается загрузить файл проверяем файлы /etc/apache2/apache2.conf или /etc/apache2/mods-enabled/php5.conf на наличие строки
AddType application/x-httpd-php .php .phtml .php3если потребовались изменения делаем рестарт апача
# /etc/init.d/apache2 restartНастраиваем Dynamic Virtual Hosting по именам сайтов (url):
разрешаем запуск модуля vhost_alias
# a2enmod vhost_aliasдля того чтобы модуль заработал правим /etc/apache2/apache2.conf
отключаем canonical name ,если нужно настраиваем логи по каждому виртуальному хосту, и указываем директорию виртуальных хостов
# берем имя сервера из Host: headerсоздаем директорию для виртуальных хостов
UseCanonicalName Off
# директории с виртуальными хостами
VirtualDocumentRoot /var/www/vhosts/%0
VirtualScriptAlias /var/www/vhosts/%0/cgi-bin
# mkdir /var/www/vhostsСоздаем темплейт виртуального хоста и копируем туда например joomla 1.5
# chown -r www-data:www-data /var/www/vhosts
# mkdir -p /var/www/vhosts/template/cgi-binРестартуем апач
# /etc/init.d/apache2 restartВсе готово для создания виртуальных хостов.
Просто копируем темплейт хоста в директорию с именем будущего сайта например для сайта www.mysite.ru
# cp -r /var/www/vhosts/template /var/www/vhosts/www.mysite.ruтеперь все HTTP запросы к серверу с Host-header www.mysite.ru будут перенаправляться на сайт в директории /var/www/vhosts/www.mysite.ru
Для того чтоб до сайта можно было добраться правим записи DNS
или правим /etc/hosts file и добавляем запись
127.0.0.1 localhost www.mysite.ru
понедельник, 14 апреля 2008 г.
Массовый хостинг с помощью mod_vhost_alias
Автор: Голышев С.В. (glsv) В статье описывается работа с модулем Apache mod_vhost_alias. Данный модуль предназначен для уменьшения трудоемкости создания и поддержки большого количества виртуальных хостов на сервере Apache. Модуль организует динамическое создание виртуальных хостов на основе запрошенного доменного имени и не требует внесения изменений в конфигурационные файлы сервера при создании новых виртуальных хостов. При большом числе виртуальных хостов (десятки и сотни) время запуска и перезагрузки веб-сервера занимает значительное время, в течение которого он недоступен посетителям. Такая ситуация является критической для хост-провайдеров и серверов на которых расположены популярные сайты. Уменьшить время запуска сервера и упростить работу c большим количеством виртуальных хостов может модуль Apache с названием mod_vhost_alias. Данный модуль позволяет не создавать отдельный контейнер
В директивах модуля могут использоваться следующие параметры:
Параметр N определяет часть имени хоста, которое следует использовать. Параметр M определяет номер используемого символа из части N. Ниже показаны возможные значения параметра N и примеры на основе доменного имени www.st-host.ru. Разбиение имен хостов на части происходит по символу точки слева направо. Т.е. для имени www.st-host.ru первой частью будет являться - www, а последней - ru.
Рассмотрим применение данных параметров на примере директивы VirtualDocumentRoot.
При запросе по адресу http://www.st-host.ru директива VirtualDocumentRoot сгенерирует путь к файлу на основе запрошенного имени хоста и Apache будет искать файл на диске по адресу /www/st-host/htdocs/index.php Параметр M определяет номер используемого символа в параметре N. При положительном значении M отсчитывается с левой стороны строки, при отрицательном – с правой стороны.
Ниже приведены примеры директивы VirtualDocumentRoot и сгенерированные пути для запроса http://www.st-host.ru/.
Если на сервере используется большое количество виртуальных хостов, то директории хранения сайтов удобно распределять по именам доменов первого уровня (ru, com, net, org и т.п.). При размещении нескольких сотен сайтов их можно распределять по папкам, имена которых соответствуют первым символам доменных имен. Недостатки модуля mod_vhost_aliasУдобный способ создания виртуальных хостов с помощью модуля mod_vhost_alias не лишен ряда недостатков.
Индивидуальная настройка виртуальных хостов, созданных mod_vhost_aliasМодуль mod_vhost_alias не имеет средств индивидуальной настройки виртуальных хостов и вследствие этого конфигурации всех виртуальных хостов, созданных модулем, получаются одинаковыми. При необходимости индивидуального конфигурирования виртуальных хостов применяется контейнер Рассмотрим пример. Необходимо произвести уникальную настройку сайта www.mega-site.ru. При этом для создания виртуальных хостов используется модуль mod_vhost_alias со следующими директивами.
Согласно директиве VirtualDocumentRoot файлы сайта www.mega-site.ru должны храниться в директории /www/ru/mega-site/htdocs. Для того чтобы настроить работу Apache для этой директории необходимо в файле httpd.conf создать следующие директивы.
Внутри контейнера ПримечаниеЧастичное конфигурирование виртуальных хостов можно производить также через файлы .htaccess, размещаемые непосредственно в директории сайта. |
воскресенье, 30 марта 2008 г.
Настраиваем Apache
SetOutputFilter DEFLATE
Кешируем на стороне клиента файлы мультимедиа:
Header set Cache-Control «public»
Header set Expires «Thu, 15 Apr 2010 20:00:00 GMT»
Отключаем мехнизм ETag, который передает значение хеша файла и определяет изменился ли файл:
Header unset ETag
FileETag None
Отключаем заголовок Last-Modified:
Header unset Last-Modified
В почту пришел вопрос об ошибке:
Invalid command ’Header’, perhaps misspelled or defined by a module not included in the server configuration failed!
Для работы инструкции «Header» необходимо загружать модуль mod_headers:
LoadModule headers_module modules/mod_headers.so
Сервер после данных манипуляций будет гораздо быстрее отдавать контент.
Конвертация php-скриптов в статику
Как быть? Искусственно ограничить запросы - это значит отбросить посетителей. Наращивать мощности сервера накладно. Оптимизировать скрипты нет времени.
Именно в таком случае поможет тотальная конвертация всего сайта в статический 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 и обращаться к нему.
Benchmark Apache
Запускаем:
ab -c10 -n500 http://mydomen.dom/index.php
Шаг 1:
Правим файл /etc/apache2/httpd.conf в любом редакторе, удаляем комментарии # в строке:
и ставим коммент на
Шаг 2:
Ищем строку:
и отключаем
Шаг 3:
добавляем строки после второго шага 2:
так настраиваем перенаправление для виртуальных хостов т.е. http://foo.homelinux.net -> /Library/WebServer/Documents/foo.homelinux.net/
Шаг 4:
Сохраняем файл и рестартуем апач (отключаем веб шаринг и включаем его снова).
Ну и наконец создаем необходимые директории для виртуальных хостов например для
foo.homelinux.net и bar.homelinux.net делаем следующие директории:
заливаем в них нужные файлы и все работает
если не работает смотрим вывод команды
и правим httpd.conf
в дополнение я использую www.dyndns.org для своих хостов ( айпишник внешний но динамический)