Tag Archive for 'apache'

Linux VPS: Переносим apache на отдельный порт

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

У меня на VPS работает frontend - аккселератор и поэтому мне нужно, чтоб 80-ый порт был бы свободен. А apache при этом использовал бы какой-то другой порт.

Если у вас на VPS стоит панель управления cpanel - в ней придется покопаться.

Переносим apache на порт 8080

Открываем /var/cpanel/cpanel.config и подправляем apache_port=80 на apache_port=8080

Далее - нужно пересоздать конфигурацию - /usr/local/cpanel/whostmgr/bin/whostmgr2 –updatetweaksettings

После этого нужно проверить, что в файле /usr/local/apache/conf/httpd.conf прописался нужный порт

grep Listen /usr/local/apache/conf/httpd.conf

И скрипт, проверяющий работоспособность сервисов, тоже обновил свои настройки:

@www1 /etc> cat /etc/chkserv.d/httpd
service[httpd]=8080,GET / HTTP/1.0,HTTP/1..,/scripts/checkmaxclients;killall -TERM httpd;sleep 2;killall -9 httpd;/etc/rc.d/init.d/httpd stop;/etc/rc.d/init.d/httpd startssl;/usr/local/apache/bin/apachectl startssl;/etc/rc.d/init.d/httpd start;/usr/local/apache/bin/apachectl start
@www1 /etc>

После этого стоит перезапустить apache  (/etc/init.d/httpd restart) и ChkServ (/scripts/restartsrv_chkservd ) — иначе он вас забросает письмами о том, что сервис не работает и будет постоянно его перезапускать.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Linux VPS: Падение хостинга или “Пожелай врагу переезд”

Добрый день!

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

Итак, приготовьтесь - скоро я начну описывать в подробностях, как переежжать с одного VPS  на другой, с чем это связано и как минимизировать убытки и простой сайта.

Что такое VPS?

VPS расшифровываестя как Virtual Private Server — Виртуальный Частный Сервер.  А если просто и в двух словах - то берется один мощный сервер и при помощи какой-либо технологии виртуализации (Xen/OpenVZ) нарезается на много маленьких изолированных друг от друга серверов. У всех у них меньше памяти/дискового пространства/процессорного времени, но зато они существенно дешевле, чем арендовать большой сервер. Тем более когда вам и не нужны мощности выделенного сервера.

Итак

Из чего состоит переезд?

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

Но в целом вам нужно представить этапы:

  1. Делаем предварительный полный backup
  2. Находим новый хост, оплачиваем, получаем к нему доступ
  3. Перекачиваем весь полный backup на новый хост
  4. Поднимаем/восстанавливаем на новом хосте конфигурацию со старого (не всегда это возможно проверить, но тем не менее можно все подготовить) - тут есть много тонкостей
  5. Снижаем время обновления DNS до 5-10 минут
  6. Приостанавливаем/переводим в readonly старый хостинг
  7. Делаем окончательную синхронизацию файлов
  8. Поднимаем все сервисы на новом хосте
  9. Вносим изменения в DNS
  10. PROFIT
  11. Поднимаем время обновления DNS до нормального

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

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

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

Я буду выпускать бесплатную версию курса - где можно будет просто скачать аудио файлы и послушать их.

Будет так же и платная версия курса

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

После окончания переезда (ну и соответственно и курса) я, как всегда, подыму цену — до 4500 рублей.

Я знаю, что запишутся немногие, поэтому там можно смело раздавать вкусные и полезные советы и приемы — все равно большая часть читателей с ними не познакомится :)

Спешите записаться, потому что курс будет идти прямо в режиме online - я сейчас в процессе переезда и буду его подробно освещать.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Уменьшаем нагрузку на сервер FreeBSD

А вы ведь в курсе, да, что если у вас есть большое количество (от 30-50 и наверх) клиентов, обращающихся параллельно, то в FreeBSD можно неплохо снизить нагрузку на apache сервер.

Часть обработки http запроса можно передать в ядро и оно будет вызывать apache уже только когда эта обрачтка сделана и запрос целиком дошел до сервера.

Одним словом - об этой интересной технике - читайте в книжке ‘Установка и настройка сервера FreeBSD+apache+mysql+php‘.

Это специфичная для FreeBSD штука, но загруженность сервера она понижает :)

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Веб сервер apache - теория протокола http и “как работает web сервер?”

30 апреля я проведу открытый онлайн каст для всех, кто интересуется веб-сервером apache:

Список тем по http серверу

  • Как вообще работает протокол HTTP? (tcp level, application level, requests/response, headers/body, GET, POST, CONNECT)
  • Как обрабатывает запросы apache? (tcp listen, select, request per children, keep-alive, max requests, dynamic content, cgi, fast cgi, modules)
  • Как работают cookies? (Set-Cookie, Cookie)
  • Как отлаживать работу веб-сервера? (telnet, lynx, tcpdump)
  • На что обращать внимание при установке и настройке apache сервера? (max_servers)
  • Настройка SSL в Apache (ssl configuration, ssl connection setup, limitations)
  • Что из себя представляют сертификаты SSL? Как они вообще работают и как их настраивать в apache? (ca, trust, sign request, certificate, key,  x509, pkcs12)

Ну и, естественно, будут ответы на ваши вопросы. Не забудьте прийти на вещание!

Запись этого курса я выкладывать не буду!

Где будет прямой эфир?

Вещание будет на сервере http://unixmastera.ru/ , а точнее

http://unixmastera.ru/content/vvedenie-v-http-i-apache-php-mysql-server

Когда будет прямой эфир по http/apache?

30 апреля, 20:00 по москве, в онлайн.

Приходите, участие в онлайн вещании абсолютно бесплатное!

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

FreeBSD: Ограничить скорость скачивания в apache

Для того, чтоб ограничить скорость скачивания в apache, можно пойти двумя путями.

Можно поставить ограничение в firewall и регулировать скорость там. (Как настраивать shaping будет обсуждаться в курс по ipfw/pf,  начинающемся 1 мая).

Можно поставить модуль apache mod_cband.

Установка модуля mod_cband

cd /usr/ports/www/mod_cband
make install clean

Настройка модула mod_cband

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

CBandSpeed 1024 10 30
CBandRemoteSpeed 20kb/s 3 3

Они ограничат общую скорость хоста до одного мегабита, 10 запросов в секунду и максимум 30 открытых соединений.

Вторая директива огранчит скорость одного пользователя до 20кб/сек, 3 соединения в секунду и 3 параллеьных соединения к этому хосту.

Приглашаются авторы на unixmastera.ru. Покажи на что ты способен - напиши совет сам :)

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Куда устанавливается php во FreeBSD?

По умолчанию, все порты в системе FreeBSD устанавливаются в папку /usr/local/ .

php не является исключением.

Путь к файлу интерпретатора php в FreeBSD

Если порт php скомпилирован в виде CLI (command line interface) приложения - тогда он установится в /usr/local/bin/php.  Если же php скомпилирован как модуль apache - тогда он установится в /usr/local/libexec/apache2 или в /usr/local/libexec/apache13 (в зависимости от версии сервера).

Путь установки модулей php

Модули php обыкновенно устанавливаются в директорию

/usr/local/lib/php/<версия_сборки_php>

Конфигурация php

Конфигурационные файлы php расположены в /usr/local/etc/php.ini и в /usr/local/etc/php/extensions.ini .

Подробное описание установки и конфигурации php - в книге ‘Установка и настройка сервера FreeBSD+apache+mysql+php

Приглашаются авторы на unixmastera.ru. Покажи на что ты способен - напиши совет сам :)

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Книга FreeBSD + apache + mysql + php - конфигурационный файл apache

В книгу добавилась глава о конфигурационном файле apache  - httpd.conf

Конфигурационный файл apache состоит из директив и из секций.
Директивы указывают различные настройки сервера, а секции показывают к чему
именно они относятся.

4 типа секций, которые нас интересуют:

VirtualHost –  указывает настройки для виртуального хоста, который имеет
собственное отдельное имя и/или отдельный IP и/или отдельный порт

Location — указывает на специфичные настройки внутри отдельного
виртуального хоста для конкретного URL. При этом Location не имеет ничего общего
с физической файловой системой для данного хоста - она оперирует только с URL, a
они могут кардинально отличаться от путей на файловой системе. Разновидностью
этой же директивы является LocationWatch, которую мы рассмотрим дальше.

Directory — указывает на специфичные настройки именно для данной директории

Files — указывает на спефицичные настройки для данного файла или всех
файлов попадающих под соответстсвующий шаблон

Более подробно - в 16-ой главе книги по ‘Установке и настройке FAMP‘.

Там же вы найдете:
- Подробное описание секций VirtualHost, Location, Directory, Files
- Как указывать несколько имен для одного и того же хоста
- Как разрешать/запрещать доступ с конкретного IP/подсети к определенным директориям и файлам
- Как менять настройки PHP интерпретатора только для одной директории или только для одного хоста.

Все в подробностях - на странице  книги ‘Установка и настройка FreeBSD+apache+mysql+php‘. Узнайте в подробностях, из чего состоит конфигурационный файл apache и как его настраивать.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Apache: файлы .htaccess и .htpasswd, как ставить пароли

Как создать и поменять .htpasswd, файл паролей apache

Перемещено! Я поменял и доработал материал по .htaccess и .htpasswd.

Для работы с файлами паролей есть утилита htpasswd, поставляемая вместе с apache.

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

Для создания файла можно применить команду
htpasswd -c имя_файла имя_пользователя
и ввести пароль пользователя.

Для того, чтоб поменять пароль у уже существующего пользователя — достаточно сделать
htpasswd имя_файла имя_пользователя
и тоже ввести новый пароль и подтверждение.

Доступ к .htaccess и .htpasswd

По умолчанию apache отказывает в любой попытке чтения при помощи HTTP запроса этих файлов. Это не надо ни в коем случае менять, эти файлы должны быть недоступны при помощи web сервера.

Тем не менее, нужно убедиться, что сам веб сервер может их прочитать — поэтому либо они должны принадлежать пользователю www, либо иметь права доступа -rwxr–r–.

Новая глава в книге по FAMP

Я дописал еще одну главу в книжку по ‘Установке и настройке FreeBSD+apache+mysql+php+phpmyadmin‘, которую и выложу сегодня.

Вот новые разделы в книжке:

  • Как поставить пароль на директорию в apache

    • Все в конфигурационном файле
    • Гибкий вариант при помощи .htaccess
    • Как создать и поменять .htpasswd, файл паролей apache
    • .htaccess и .htpasswd
    • Что следует проверить, если пароль не запрашивается
  • Как ограничить доступ только с определенных IP
    • Все в конфигурационном файле
    • Гибкий вариант при помощи .htaccess
    • Allow from
    • Deny from
    • Order allow,deny
    • Order deny,allow
    • Что необходимо для работы?

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

FreeBSD: В какую папку ставится Apache по умолчанию

При инсталляции порта или пакета apache* он создает папку с путем /usr/local/www, под которыми и располагаются все его файлы данных.  Сайт, который отображатся при запросе, находится в папке /usr/local/www/data. В принципе это символический линк и вы можете поменять его, чтоб он указывал на любую другую директорию.

Лог файлы apache по умолчанию - это файлы httpd-access.log и  httpd-error.log в директории /var/log/ .

Подробнее об установке и настройке apache сервера на FreeBSD можно прочесть в моей книжке.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Бедненькие пиратеги по 10 рублей!

На одном варезном форуме люди просят поделиться книжкой ‘Установка и настройка FreeBSD+apache+mysql+php‘.

Ну ладно бы, если бы они просили халявную версию.

Нет, все существенно лучше - они предлагают скинтуься деньгами и купить ее вскладчину.

Всем кто хочет получить эту книгу (и даже БОЛЬШЕ) не потратив денег - даю наводку.

У меня есть тексты, которые нужно перевести из аудио в текстовый файл и привести в порядок разметку (разметить в формате LaTeX).  Взамен можно получить книжку о FreeBSD сервере :). В качестве бонуса - получите следующую книгу тоже ;)

Таким образом — тратите пару часов времени и книжка ваша :).

Адрес для связи: gasparch@gmail.com

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).