Помощь
Все разделы помощи → Вопросы по Linux VPS
- Установка mod_rpaf
-
При работе связки nginx+apache, HTTP запросы сначала обрабатываются с помощью nginx, а потом передаются apache. В этом случае HTTP запрос происходит с IP адреса, на котором расположен nginx, а не с IP, с которого на самом деле пришёл запрос. Это создаёт определённые неудобства: в скриптах форумов/блогов/гостевых книг/etc IP пользователей, оставивших ответ на странице, указываются как IP сервера.
mod_rpaf служит для того, чтобы восстановить настоящий IP после обработки запроса nginx'ом.
Как установить mod_rpaf:
1. Устанавливаем пакет httpd-devel:
yum -y install httpd-devel
2. Скачиваем и устанавливаем mod_rpaf:
cd /usr/local/src
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c3. Далее нужно создать файл конфигурации mod_rpaf - /etc/httpd/conf.d/rpaf.conf
и добавить в него следующие строки:
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFproxy_ips 127.0.0.1 xx.xx.xx.xx yy.yy.yy.yyгде xx.xx.xx.xx и yy.yy.yy.yy - IP адреса вашего сервера. Если на сервере более двух IP, добавьте их по той же аналогии.
Далее требуется перезапустить Apache, для этого выполните команду
service httpd restart
4. В nginx внутри блока http {} должны быть указаны строки:
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;если модифицируется nginx.conf, следует перезапустить nginx:
/etc/init.d/nginx stop
/etc/init.d/nginx start5. Как проверить, работает ли установленный модуль.
На любом из доменов, которые расположены на Вашем сервере, разместите файл test.php с содержимым:
<?
echo $_SERVER['REMOTE_ADDR'];
?>Далее зайдите по ссылке http://domain.tld/test.php, где domain.tld - имя вашего домена. Если как результат отображается IP, отличающийся от IP вашего сервера, модуль работает корректно.
- Параметр MaxClients и установка nginx
-
Если вы являетесь владельцем виртуального выделенного севера(VPS), и столкнулись с проблемой недоступности ваших сайтов (невозможно зайти на сайт через броузер), но при этом на вашем сервере показатели нагрузки являются минимальными, а перезапуск веб-сервера Apache (httpd в панели управления сервером Parallels) возобновляет работу сайтов только на некоторое время, причиной подобной ситуации может быть слишком большое количество одновременных обращений к вашим сайтам. В логе ошибок (error.log) веб-сервера Apache Вы можете увидеть:
[error] server reached MaxClients setting, consider raising the MaxClients setting
Если одновременно к сайту осуществляется большое количество запросов, может достигаться лимит одновременно запущенных дочерних процессов Apache. Как только данный лимит превышается, все остальные запросы не могут быть обработаны, так как все запущенные процессы Apache уже заняты обработкой других запросов.
Мы рекомендуем следующий способ решения данной проблемы:
Метод заключается в установке дополнительного веб-сервера nginx, который будет осуществлять акселерацию http соединений (http acceleration).
Некоторые панели управления сервером позволяют сконфигурировать nginx в автоматическом режиме.
Панель управления ISPManager поддерживает подобную функцию. Для установки nginx потребуется выполнить следующие действия:
1. Зайдите на сервер по SSH под пользователем root (для работы с ssh мы рекомендуем программу Putty, которую можно скачать с сайта производителя: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
2. Если Ваш сервер работает под управлением ОС CentOS, через ssh выполните следующие команды:
wget http://download.fedora.redhat.com/pub/epel/5/i386/nginx-0.6.39-5.el5.i386.rpm
rpm -i nginx-0.6.39-4.el5.i386.rpm
/usr/local/ispmgr/sbin/pkgctl -D cache3. После того, как команды выполнятся, зайдите в ISPManager
4. Далее в главном меню (находится с левой стороны), в разделе "Настройки сервера" нажмите на ссылку "Возможности"
5. В открывшемся разделе выберите из списка "Nginx - быстрый и лёгкий WWW сервер для кэширования", и нажмите на иконку "Включить"
Nginx установлен, и готов к работе. Теперь он будет осуществлять акселерацию HTTP соединений, а также будет обрабатывать запросы к статической информации (изображения, файлы стилей CSS, медиа-файлы mp3/mpeg/avi, архивы zip/gz/rar), что существенно снизит количество обращений к Apache.
Если на Вашем сервере установлена другая панель управления, nginx нужно будет устанавливать вручную. Способы установки и конфигурирования данного ПО Вы можете посмотреть на официальном сайте производителя - http://sysoev.ru/nginx/download.html.
Если установка вызывает у вас затруднения, наши специалисты могут установить nginx на ваш сервер на основе услуги почасового администрирования.
Внимание!
Если после установки nginx, при добавлении домена, пропадает доступ к сайтам по протоколу http, вам необходимо внести следующие изменения в файле /etc/init.d/nginx
Найти строку:
killproc $prog -QUIT
Удалить из этой строки: "-QUIT"
- Скрипт для создания резервных копий MySQL баз
-
В ходе работы с VPS сервером может возникнуть необходимость создания резервных копий баз данных не зависимо от данной функции в панели управления сервером. Для этого можно воспользоваться следующим скриптом:
#!/bin/bash DBACCESS="-u root -pPASSWORD" BASES=`/bin/echo "SHOW DATABASES" | /usr/bin/mysql $DBACCESS | /bin/grep -v Database` TODAY=`/bin/date '+%Y-%m-%d_%H-%M-%S'` KEEP=10 BACKUP_PATH=/var/backup BASES_PATH=$BACKUP_PATH/bases for base in $BASES; do if [ `/bin/ls -1 /var/lib/mysql/$base | /bin/grep -v db.opt | /usr/bin/wc -l` -gt 0 ]; then /bin/mkdir -p $BASES_PATH/$base /bin/echo -n "Dumping $base... " /usr/bin/mysqldump --default-character-set=utf8 -f $DBACCESS $base | gzip > $BASES_PATH/$base/$base.$TODAY.sql.gz /bin/echo "done" COUNT=`/bin/ls -1 $BASES_PATH/$base/$base* | /usr/bin/wc -l` while [ $COUNT -gt $KEEP ]; do OLD=`/bin/ls -1 $BASES_PATH/$base/$base* | /bin/sort | /usr/bin/head -1` /bin/rm $OLD COUNT=`/bin/ls -1 $BASES_PATH/$base/$base* | /usr/bin/wc -l` done fi done
1. Сохраняем данный скрипт в директории /etc/cron.daily/ под именем backupbases.sh
2. Делаем данный скрипт исполняемым:
-bash-3.1# chmod a+x backupbases.sh
Резервные копии будут делаться каждую ночь и сохраняться в директории /var/backup/
Ниже указано в каких файлах хранятся root-пароли к MySql:
1) Если установлена панель управления сервером Plesk (Parallels)
Пароль хранится в файле /etc/psa/.psa.shadow
пользователь - admin
2) Если установлена панель управления сервером ISPManager
ISPManager -> Настройки сервера -> Серверы баз данных -> MySQL -> Пароль
пользователь - root
3) Если установлена панель управления сервером DirectAdmin
Пароль хранится в файле /usr/local/directadmin/conf/mysql.conf , параметр passwd
пользователь - da_admin
4) Если установлена панель управления сервером cPanel
Пароль хранится в файле /root/.my.cnf
пользователь - root
*Пользователь указывается в строке:
DBACCESS="-u root -pPASSWORD"
параметр -u
- Установка Zend Optimizer
-
1. Переходим в директорию /tmp:
# cd /tmp
2. Загружаем дистрибутив с сайта производителя http://zend.com
# wget http://downloads.zend.com/optimizer/3.0.0/ZendOptimizer-3.0.0-linux-glibc21-i386.tar.gz
3. Распаковываем архив:
# tar -xzf ZendOptimizer-3.0.0-linux-glibc21-i386.tar.gz
4. Переходим в нужную нам директорию ZendOptimizer-3.0.0-linux-glibc21-i386:
# cd ZendOptimizer-3.0.0-linux-glibc21-i386
5. Начинаем установку:
# ./install>
На экране приветствия необходимо нажать Enter, после того как ознакомимся с лицензионным соглашением, нажимаем Enter, принимаем соглашение нажатием Y.
В качестве директории размещения указываем /usr/local/Zend и нажимаем OK, на следующем экране указываем размещение php.ini, по умолчанию это /etc.
На вопрос «Вы используете Apache» отвечаем No.
6. Перезапускаем Apache командой:
# service httpd restart
Важно! При наличие иных акселераторов они должны быть установлены в /etc/php.ini ранее, чем ZendOptimizer. Большинство последних панелей Plesk устанавливает автоматически IonCube, что не позволит запуститься Apache после установки ZendOptimizer.
Для отключения IonCube перейдите в /etc/php.d/ioncube-loader.ini и поставьте # в первой строке файла перед zend_extension и перезапустите apache.
- Установка и использование eAccelerator
-
eAccelerator это свободно-распространяемый PHP акселератор, оптимайзер и средство для кеширования динамического контента. Он увеличивает производительность PHP скриптов за счет их кеширования в скомпилированном состоянии, тем самым предотвращая их постоянную перекомпиляцию. В результате происходит увеличение скорости их выполнения. eAccelerator обычно уменьшает нагрузку на сервер и увеличивает скорость исполнения PHP кода на величину от 1 до 10 раз.
Скачиваем последний дистрибутив с сайта-разработчика http://eaccelerator.net/
cd /root/
wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.zip
unzip eaccelerator-0.9.5.3.zip
cd eaccelerator-0.9.5.3Затем необходимо установить дополнительно ПО:
autoconf
automake
libtool
php-develНа примере CentOS, Fedora:
yum install autoconf automake libtool php-devel
Когда установка данных пакетов закончится, выполняем комманду:
phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config
make
make installНаходим файл php.ini (whereis php)
Добавляем в конец файла:
extension="eaccelerator.so"
eaccelerator.shm_size = "160"
eaccelerator.cache_dir = "/var/cache/php-eaccelerator"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.debug = 0
eaccelerator.log_file = "/var/log/httpd/eaccelerator_log"
eaccelerator.name_space = ""
eaccelerator.check_mtime = "1"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "3600"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
eaccelerator.keys = "none"
eaccelerator.sessions = "none"
eaccelerator.content = "none"
eaccelerator.allowed_admin_path = ""Если используется Zend Optimizer:
zend_extension="/Путь_к_расширениям_php/eaccelerator.so" (Для php4 /usr/lib/php4/eaccelerator.so, для php5 /usr/lib/php/modules/eaccelerator.so) eaccelerator.shm_size = "160" - Размер кэша совместно используемой памяти, устанавливается в мегабайтах. eaccelerator.cache_dir = "/var/cache/php-eaccelerator" директория для дискового кэша. eAccelerator сохраняет в указанной директории бинарное представление кода, сессии и другие данные. eaccelerator.enable = "1" С помощью этой опции можно отключать и включать eAccelerator. Значение 1 - включено, 0 - выключено. eaccelerator.optimizer = "1" eaccelerator.debug = 0 eaccelerator.log_file = "/var/log/httpd/eaccelerator_log" eaccelerator.name_space = "" eaccelerator.check_mtime = "1" eaccelerator.filter = "" eaccelerator.shm_max = "0" eaccelerator.shm_ttl = "3600" Указывает в секундах время, по истечении которого давно не используемый код должен быть удален из совместно используемой памяти при превышении объема выделяемой памяти.По умолчанию эта опция отключена, мы рекомендуем устанавливать значение от 60 до 300 при большом количестве файлов и от 900 до 1800 при малом количестве файлов. eaccelerator.shm_prune_period = "0" eaccelerator.shm_only = "0" eaccelerator.compress = "1" eaccelerator.compress_level = "9" eaccelerator.keys = "none" eaccelerator.sessions = "none" eaccelerator.content = "none" eaccelerator.allowed_admin_path = ""
Затем создаем каталог для временных файлов:
mkdir /var/cache/php-eaccelerator
chmod 777 /var/cache/php-eacceleratorИ перегружаем web-сервер apache
service httpd restart