Моментальное создание поддоменов в Apache

Apache
Решил облегчить себе жизнь и настроить работу с хостами в моей любимой Ubuntu.
Задача: Создаём директорию new_site в /home/web/ и браузер успешно находит new_site.dk (dk — имя машины). Первой мыслью было написание скриптов, сканирующих /home/web/ и вносящих изменения в настройки apache и файл hosts. Мне этот вариант не понравился. Но решение есть!
Читать дальше

Использование mod_macro для конфигурации виртуальных хостов Apache

Apache
Итак, задача следущая — лёгкое добавление новых виртуальных хостов в apache.
Первое, что приходит в голову — описать шаблон виртуального хоста в виде макроса, который можно использовать неоднократно, в чём нам поможет модуль mod_macro.
Читать дальше

apache + nginx + gzip_static + yuicompressor

Руководство
В этой статье я опишу принципиальные различия Apache и Nginx, архитектуру фронтэнд-бэкэнд, установку Apache в качестве бэкэнда и Nginx в качестве фронтэнда. А также опишу технологию, позволяющую ускорить работу веб-сервера: gzip_static+yuicompressor.

Nginx

Nginx – сервер легкий; он запускает указанное число процессов (обычно число процессов = числу ядер), и каждый процесс в цикле принимает новые соединения, обрабатывает текущие. Такая модель позволяет с низкими затратами ресурсов обслуживать большое количество клиентов. Однако, при такой модели, нельзя выполнять длительные операции при обработке запроса (например mod_php), т.к. это по сути повесит сервер. При каждом цикле внутри процесса по сути выполняются две операции: считать блок данных откуда-то, записать куда-то. Откуда-то и куда-то – это соединение с клиентом, соединение с другим веб-сервером или FastCGI-процессом, файловая система, буфер в памяти. Модель работы настраивается двумя основными параметрами:


Читать дальше

mod_pagespeed для Apache

Apache
Сегодня Google представила новый модуль для Apache под названием mod_pagespeed. По словам разработчиков время загрузки страницы удалось уменьшить на 50 процентов, а на отдельных проектах эта цифра значительно выше.

Сравнительная демонстрация с включенным модулем и без него

видео: mod_pagespeed improvement for Google AdSense Blog

Ссылка для скачивания

UPD

Модуль представляет из себя набор фильтров, каждый из них и примеры использования представлены и описаны в Документации. Применять и использовать модули следует исходя из потребностей своего проекта, у каждого фильтра есть свои особенности, которые следует учесть при использовании, обращая внимание на раздел «Risks» в их документации.

Добавление виртуальных хостов в Apache

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

Я создам виртуальный хост с именем myhost (вместо myhost вы можете выбрать любое имя, которое вам захочется).

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

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

Создаем конфигурационный файл хоста

В каталоге /etc/apache2/sites-available хранятся конфигурационные файлы виртуальных хостов Apache. По умолчанию там хранится файл default, который соответствует хосту localhost. Мы возьмем за основу файл default и скопируем его в файл с именем myhost. Для этого выполните следующие команды:
cd /etc/apache2/sites-available
sudo cp default myhost

Теперь отредактируем файл myhost. Откройте его в редакторе (например, в редакторе Gedit), выполнив команду:
sudo gedit myhost

Внесите в файл соответствующие изменения. В частности пропишите путь до директории, в которой будут храниться файлы хоста. В нашем случае это путь /home/yuriy/myhost, где yuriy вы должны заменить на название вашей домашней директории. Путь нужно прописать в двух местах: у параметра DocumentRoot и в заголовке секции <Directory /home/yuriy/myhost>. Вот пример того, как должен выглядеть ваш файл myhost:


Читать дальше

Proxy-сервер SQUID web-интерфейс для администрирования SAMS SAMS+REJIK с аунтентификацией по NTLM

Руководство
Настраиваем связку SQUID SAMS+REJIK с аунтентификацией по NTLM.
Так как есть ДОМЕН под управление Win 2003 Server, и нужна авторизация пользователя под своей учетной записью и так же вести логи и предоставлять информацию начальству в случаи надобности.
Авторизация пользователей будет по NTLM.
Для всего нам понадобится apache, php, mysql, сам squid, sams, samba. Все это нам предстоит установить, или обновить.

Для начало ставим скопом apache, php, mysql:
$ aptitude install apache2 apache2-doc apache2-utils ssl-cert mysql-server libmysqlclient15-dev libapache2-mod-php5 php5 php5-common php5-dev php5-mcrypt php5-imagick php5-mysql

Для того, чтобы пользователи могли проходить NTLM аутентификацию, необходимо настроить авторизация через Active Directory, и здесь вы будем использовать samba, kerberos, winbind, pam. Настраиваем и введем наш сервер в домен:

Читать дальше

Установка и настройка Trac в Debian / Ubuntu

Web
Trac — это система управления проектами разработки программного обеспечения, вкючающая в себя возможность отслеживания ошибок и просмотра репозитариев систем контроля версий (subversion «из коробки», mercurial, git, bazaar через плагины). Реализована средствами языка Python и распространяется в открытых исходных кодах.

Trac предоставляет такие функции, как:

— разделение проекта на этапы (milestones)
— план работ (roadmap)
— история изменений (timeline)
— управление пользователями
— учет задач на разработку (tickets)
— wiki

Trac поддерживает wiki разметку в описании задач и commit'ов, а так же позволяет создавать связи (links) между задачами (tickets), изменениями (changesets), файлами (files) и wiki-страницами (wiki pages).

Читать дальше

Установка и настройка Subversion, Apache, WebSvn в Debian / Ubuntu

Web
Subversion — централизованная система управления версиями, распространяемая в исходных кодах. Так же иногда называется svn, по названию клиентской программы, входящей в стандартный дистрибутив Subversion. Разрабатывалась, как альтернатива системе CVS, обладающая всеми основными функциями CVS и свободная от ряда её недостатков.

В настроящее время Subversion используется во многих известных проектах: Apache, Samba, Google Code, SourceForge.net и многих других.

WebSvn — онлайн subversion клиент. По сути, есть не что иное, как набор PHP скриптов, предоставляющий удаленный доступ к репозиториям Subversion. Поддерживается работа с несколькими репозитариями, допускается редактирование шаблонов интерфейса, поддерживется опция Apache MultiViews и предоставляется возможность экспорта в RSS.

Читать дальше

Установка nginx как front-end к apache в Debian / Ubuntu

Руководство
Рано или поздно перед администратором встает задача разгрузить back-end, которым как правило, является apache. Одной из альтернатив для front-end является легкий web сервер Nginx. Данная конфигурация дает особенно большой выигрыш при наличии подключений по медленным каналам связи (модем), так как ресурсы системы начинают использоваться для дела, а не ждать, пока будет получен запрос или отдан ответ клиенту.

Преимущества архитектуры front-end/back-end
В случае использования только apache, при наличии медленных подключений, последний бОльшую часть времени просто ждет, либо пока будет полностью получен запрос, либо пока будет полностью передан ответ клиенту. При этом под каждое соединение будет выделено определенное количество памяти, и, как не трудно догадаться, общее количество одновременных подключений будет прямо пропорционально доступному объему памяти.

В случае же front-end/back-end конфигурации ситуация немного иная: front-end ( в нашем случае, nginx) полностью обрабатывает входящий запрос, используя при этом минимум системных ресурсов. Передает запрос back-end'у (apache), быстро получает ответ и начинает передачу ответа клиенту. Таким образом, ресурсы, занятые под apache, были использованы только для того, чтобы сгенерировать запрошенный контент, и были сразу возвращены системе после завершения работы. А с клиентом общается лишь легкий и не требовательный к ресурсам front-end nginx.

Общий вид схемы front-end/back-end
В общем виде, http-соединение будет проделывать следующий путь:

HTTP Client  ---->  Front-End (nginx)  ---->  Back-End (apache)
-----------  <----  -----------------  <----  -----------------
1.2.3.4:80          192.168.0.1:80            192.168.0.1:8080

В данном случае, fron-end и back-end располагаются на одной машине. В общем же случае, при необходимости они могут работать на разных машинах.

Читать дальше