nginx
nginx — это HTTP-сервер и почтовый прокси-сервер, разработанный замечательным специалистом Игорем Сысоевым. Сейчас nginx работает на множестве серверов, в том числе на большинстве серверов Рамблера.
Установка nginx
Конфигурируем Apache
Откройте для редактирования файл /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:
Реальные IP-адреса
При использовании типовой конфигурации nginx, Apache будет получать все запросы с единого IP-адреса, что не позволит вести корректную статистику.
Для решения проблемы необходимо установить проверить, подключается ли модуль mod_remoteip.so для Apache.
Затем в файл /etc/httpd/conf.modules.d/remoteip.conf внести опции
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1
Перезапускаем Apache:
Настройка nginx
Конфигурационный файл 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; # Увеличиваем буферы для ответа proxy_buffer_size 256k; proxy_buffers 8 256k; # Настройки 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|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|js)$ { root /var/www/vhosts/site.ru/httpdocs/; }
Не забудьте указать корректный путь к корневой директории сайта.
Автоматический запуск nginx
Для автоматического запуска
# chkconfig nginx on