nginx — это HTTP-сервер и почтовый прокси-сервер, разработанный замечательным специалистом Игорем Сысоевым. Сейчас nginx работает на множестве серверов, в том числе на большинстве серверов Рамблера.
Переходим в /usr/local:
Создаем директорию:
Переходим в директорию /usr/local/nginx:
Загружаем дистрибутив:
Распаковываем:
Переходим в директорию nginx-0.7.61:
Конфигурируем:
Собираем nginx:
Устанавливаем nginx:
nginx будет установлен в каталог /usr/local/nginx/, директорию nginx-0.7.61 можно удалить.
Откройте для редактирования файл /etc/httpd/conf/httpd.conf.
Укажем Apache на просмотр порта 8080, а не 80, для этого строку
Listen 8080
указываем вместо
Listen 80
и добавим строку:
NameVirtualHost *:8080
Необходимо откорректировать по адресу /var/www/vhosts/site.ru/conf/httpd.include или другом файле с описанием VirtualHost-ов на сервер, в файле заменяем:
<VirtualHost [IP-адрес или домен]:80>
на
<VirtualHost *:8080>
Перезапускаем Apache:
При использовании типовой конфигурации nginx, Apache будет получать все запросы с единого IP-адреса, что не позволит вести корректную статистику.
Для решения проблемы необходимо установить дополнительный модуль reverse proxy add forward module.
Переходим в /usr/local/nginx:
Загружаем дистрибутив:
Распаковываем:
Переходим в /usr/local/nginx/mod_rpaf-0.5:
Устанавливаем
Или
Добавим строку загрузки модуля в /etc/httpd/conf/httpd.conf:
LoadModule rpaf_module modules/mod_rpaf-2.0.so
и настройки модуля:
# Mod_rpaf settings
RPAFenable On
RPAFproxy_ips 127.0.0.1
# Исключить для версии 1.x
RPAFsethostname On
Параметр RPAFproxy_ips содержит перечень IP-адресов, обслуживаемых nginx. Если адресов несколько, укажите из через пробел, например, RPAFproxy_ips 127.0.0.1 xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy zzz.zzz.zzz.zzz
Внимание! Для nginx 1.x из конфигурации исключается строка RPAFsethostname On
Перезапускаем Apache:
Возможно, при конфигурировании возникнет ошибка из-за того, что не найдена та или иная библиотека, например, библиотека PCRE:
./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=option.
Необходимо загрузить PCRE:
Распаковываем pcre-7.7.tar.gz:
Конфигурируем nginx, указывая путь к PCRE:
Отсутствует apxs или apxs2
Необходимо установить httpd-devel, выполним:
Конфигурационный файл nginx располагается /usr/local/nginx/conf/nginx.conf
Пример конфигурационного файла:
# Количество процессов рекомендуется устанавливать равному количеству ядер CPU worker_processes 1; events { worker_connections 1024; } # [ debug | info | notice | warn | error | crit ] error_log /var/log/nginx.error_log error; http { include 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 /var/log/nginx/access.log main; # При большой посещаемости рекомендуется отключить логирование запросов # access_log off; sendfile on; tcp_nopush on; tcp_nodelay on; # Настройки GZIP # http://sysoev.ru/nginx/docs/http/ngx_http_gzip_module.html gzip on; gzip_min_length 1100; # Разрешает или запрещает сжатие ответа методом gzip для проксированных запросов в зависимости от запроса и ответа. gzip_proxied expired no-cache no-store private auth; # Разрешает сжатие ответа методом gzip для указанных MIME-типов в дополнение к text/html, который сжимается всегда. gzip_types text/plain application/xml application/javascript application/x-javascript text/javascript text/js text/css; # Запрещаем сжатие gzip для IE6 gzip_disable "msie6"; # Уровень gzip-компрессии gzip_comp_level 3; server { listen 80 default; server_name site.ru www.site.ru; # access_log /var/log/httpd/access.log main; # Main location location / { proxy_pass http://127.0.0.1:8080/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } # Static files location location ~*^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|js)$ { root /var/www/vhosts/site.ru/httpdocs/; } } }
В секции server_name site.ru www.site.ru; указывается список доменов, которые будут обрабатываться nginx.
nginx берет на себя функции по отдаче статики, например графических файлов. Список расширений указывается в следующем блоке:
# Static files location
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|js)$ {
root /var/www/vhosts/site.ru/httpdocs/;
}
Не забудьте указать корректный путь к корневой директории сайта.
Для автоматического запуска добавим строку в /etc/rc.local
/usr/local/nginx/sbin/nginx