Рубрики
Наследие

Оптимизируем VDS под файл-хостинг с использованием nginx

Если использовать VDS в стандартной поставке с веб-сервером apache, то рано или поздно возникнет проблема с недостатком памяти. И это вполне логично:

Каждый из потомков апача отнимает достаточно много памяти

При отдаче медиаконетнта и просто файлов больших размеров
возникают медленные коннекты и число потомков неумолимо растет

Для исправления подобной ситуации можно использовать легкий
вебсервер nginx

В качестве примера возьмем VDS с Fedora Core 2 от keyweb, где традиционно не стоит yum и проведем установку и конфигурацию nginx:

Если использовать VDS в стандартной поставке с веб-сервером apache, то рано или поздно возникнет проблема с недостатком памяти. И это вполне логично:

Каждый из потомков апача отнимает достаточно много памяти

При отдаче медиаконетнта и просто файлов больших размеров
возникают медленные коннекты и число потомков неумолимо растет

Для исправления подобной ситуации можно использовать легкий
вебсервер nginx

В качестве примера возьмем VDS с Fedora Core 2 от keyweb, где традиционно не стоит yum и проведем установку и конфигурацию nginx:


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;
}
}

Листинг директорий и логи отключены, первое — по техзаданию, а второе — для ускорения работы (запись логов на диск требует времени).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *