nginx

nginx — это HTTP-сервер и почтовый прокси-сервер, разработанный замечательным специалистом Игорем Сысоевым.  Сейчас nginx работает на множестве серверов, в том числе на большинстве серверов Рамблера.

Установка nginx

# yum install 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:

# service httpd restart

Реальные 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:

# service httpd restart

Настройка 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

Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.