Nginx — различия между версиями

Материал из K.Wiki
Перейти к: навигация, поиск
(PHP)
Строка 1: Строка 1:
 +
В этой статье описывается установка и настройка веб-сервера nginx для работы с [[PHP]] и [[MySQL]] в операционной системе [[Ubuntu]].
 +
 
== Установка ==
 
== Установка ==
 
  # apt-get install nginx
 
  # apt-get install nginx
 +
 +
== Файл конфигурации ==
 +
Настройки хранятся в файле <tt>/etc/nginx/nginx.conf</tt>.
 +
 +
# Пользователь, от имени которого запускается nginx.
 +
user www-data;
 +
# Количество рабочих процессов, рекомендуется устанавливать по числу ядер.
 +
worker_processes 4;
 +
# Файл с ID процесса.
 +
pid /run/nginx.pid;
 +
# Директива уменьшает разрешение времени в рабочих процессах, за счёт чего уменьшается число системных вызовов gettimeofday().
 +
timer_resolution 100ms;
 +
# Ограничение на максимальное число открытых файлов.
 +
worker_rlimit_nofile 8192;
 +
 +
events {
 +
    # Максимальное число подключений к серверу на один рабочий процесс.
 +
    worker_connections 768;
 +
    # Эффективный метод обработки соединений, используемый в Linux 2.6+
 +
    use epoll;
 +
    # Если выключен, то рабочий процесс за один раз принимает только одно новое соединение.
 +
    # multi_accept on;
 +
}
 +
 +
http {
 +
    ##
 +
    # Основные настройки.
 +
    ##
 +
   
 +
    # Разрешает или запрещает использовать sendfile().
 +
    sendfile on;
 +
    # Разрешает или запрещает использование параметра сокета TCP_NOPUSH во FreeBSD или TCP_CORK в Linux. Параметр включаются только при использовании sendfile.
 +
    tcp_nopush on;
 +
    # Разрешает или запрещает использование параметра TCP_NODELAY. Параметр включаются только при переходе соединения в состояние keep-alive.
 +
    tcp_nodelay on;
 +
    # Таймаут, в течение которого keep-alive соединение с клиентом не будет закрыто со стороны сервера. Значение 0 запрещает keep-alive соединения с клиентами.
 +
    keepalive_timeout 65;
 +
    # Задаёт максимальный размер хэш-таблиц типов.
 +
    types_hash_max_size 2048;
 +
    # Разрешает или запрещает выдавать версию nginx’а в сообщениях об ошибках и в поле “Server” заголовка ответа.
 +
    server_tokens off;
 +
    # Описание MIME-типов.
 +
    include /etc/nginx/mime.types;
 +
    # Задаёт MIME-тип ответов по умолчанию.
 +
    default_type application/octet-stream;
 +
   
 +
         
 +
    ##
 +
    # Настройки логов.
 +
    ##
 +
   
 +
    # Настройки файла логов доступа.
 +
    access_log /var/log/nginx/access.log;
 +
    # Настройки файла логов ошибок.
 +
    error_log /var/log/nginx/error.log;
 +
   
 +
   
 +
    ##
 +
    # Настройки сжатия.
 +
    ##
 +
   
 +
    # Разрешает или запрещает сжатие ответа методом gzip.
 +
    gzip on;
 +
    # Запрещает сжатие ответа методом gzip для запросов с полями заголовка “User-Agent”, совпадающими с заданными регулярными выражениями.
 +
    gzip_disable "msie6";
 +
    # Разрешает или запрещает выдавать в ответе поле заголовка “Vary: Accept-Encoding”, если активны директивы gzip, gzip_static или gunzip.
 +
    # gzip_vary on;
 +
    # Разрешает или запрещает сжатие ответа методом gzip для проксированных запросов в зависимости от запроса и ответа.
 +
    # gzip_proxied any;
 +
    # Устанавливает степень сжатия ответа методом gzip. Допустимые значения находятся в диапазоне от 1 до 9.
 +
    # gzip_comp_level 6;
 +
    # Задаёт число и размер буферов, в которые будет сжиматься ответ.
 +
    # gzip_buffers 16 8k;
 +
    # Устанавливает минимальную HTTP-версию запроса, необходимую для сжатия ответа.
 +
    # gzip_http_version 1.1;
 +
    # Разрешает сжатие ответа методом gzip для указанных MIME-типов в дополнение к “text/html”.
 +
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
 +
   
 +
   
 +
    ##
 +
    # Настройки виртуальных хостов.
 +
    ##
 +
   
 +
    # Подключить дополнительные файлы настроек.
 +
    include /etc/nginx/conf.d/*.conf;
 +
    # Подключить настройки активных сайтов.
 +
    include /etc/nginx/sites-enabled/*;
 +
}
 +
 +
Для учета изменений настроек нужно выполнить
 +
# service nginx reload; service nginx restart
 +
 
== PHP ==
 
== PHP ==
 
=== Установка php-fpm ===
 
=== Установка php-fpm ===
Строка 11: Строка 105:
 
  # service php5-fpm restart
 
  # service php5-fpm restart
 
для устранения некой уязвимости.
 
для устранения некой уязвимости.
 +
 +
== Ссылки ==
 +
* [http://nginx.org/ru/docs/ngx_core_module.html Основная функциональность - nginx.org]
 +
* [http://nginx.org/ru/docs/http/ngx_http_core_module.html Модуль ngx_http_core_module - nginx.org]
 +
* [http://nginx.org/ru/docs/http/ngx_http_gzip_module.html Модуль ngx_http_gzip_module - nginx.org]
 +
* [http://howitmake.ru/blog/ubuntu/80.html Настройка Nginx с поддержкой PHP-FPM в Ubuntu 12.04 (включает: Nginx, php-fpm, MySQL, Memcached)]
 +
* [http://rusadmin.biz/rukovodstva/ustanovka-i-nastrojka-php-fpm-na-debian/ Php-fpm + nginx на Debian 7: устанавливаем и настраиваем]
 +
* [http://manualpages.pro/node/31 Полноценный http-сервер без Apache, на nginx+php-fpm под Debian Squeeze]

Версия 08:12, 8 сентября 2014

В этой статье описывается установка и настройка веб-сервера nginx для работы с PHP и MySQL в операционной системе Ubuntu.

Установка

# apt-get install nginx

Файл конфигурации

Настройки хранятся в файле /etc/nginx/nginx.conf.

# Пользователь, от имени которого запускается nginx.
user www-data;
# Количество рабочих процессов, рекомендуется устанавливать по числу ядер.
worker_processes 4;
# Файл с ID процесса.
pid /run/nginx.pid;
# Директива уменьшает разрешение времени в рабочих процессах, за счёт чего уменьшается число системных вызовов gettimeofday().
timer_resolution 100ms;
# Ограничение на максимальное число открытых файлов.
worker_rlimit_nofile 8192;

events {
    # Максимальное число подключений к серверу на один рабочий процесс.
    worker_connections 768;
    # Эффективный метод обработки соединений, используемый в Linux 2.6+
    use epoll;
    # Если выключен, то рабочий процесс за один раз принимает только одно новое соединение.
    # multi_accept on;
}

http {
    ##
    # Основные настройки.
    ##
    
    # Разрешает или запрещает использовать sendfile().
    sendfile on;
    # Разрешает или запрещает использование параметра сокета TCP_NOPUSH во FreeBSD или TCP_CORK в Linux. Параметр включаются только при использовании sendfile.
    tcp_nopush on;
    # Разрешает или запрещает использование параметра TCP_NODELAY. Параметр включаются только при переходе соединения в состояние keep-alive.
    tcp_nodelay on;
    # Таймаут, в течение которого keep-alive соединение с клиентом не будет закрыто со стороны сервера. Значение 0 запрещает keep-alive соединения с клиентами.
    keepalive_timeout 65;
    # Задаёт максимальный размер хэш-таблиц типов.
    types_hash_max_size 2048;
    # Разрешает или запрещает выдавать версию nginx’а в сообщениях об ошибках и в поле “Server” заголовка ответа.
    server_tokens off;
    # Описание MIME-типов.
    include /etc/nginx/mime.types;
    # Задаёт MIME-тип ответов по умолчанию.
    default_type application/octet-stream;
    
         
    ##
    # Настройки логов.
    ##
    
    # Настройки файла логов доступа.
    access_log /var/log/nginx/access.log;
    # Настройки файла логов ошибок.
    error_log /var/log/nginx/error.log;
    
    
    ##
    # Настройки сжатия.
    ##
    
    # Разрешает или запрещает сжатие ответа методом gzip.
    gzip on;
    # Запрещает сжатие ответа методом gzip для запросов с полями заголовка “User-Agent”, совпадающими с заданными регулярными выражениями.
    gzip_disable "msie6";
    # Разрешает или запрещает выдавать в ответе поле заголовка “Vary: Accept-Encoding”, если активны директивы gzip, gzip_static или gunzip.
    # gzip_vary on;
    # Разрешает или запрещает сжатие ответа методом gzip для проксированных запросов в зависимости от запроса и ответа. 
    # gzip_proxied any;
    # Устанавливает степень сжатия ответа методом gzip. Допустимые значения находятся в диапазоне от 1 до 9.
    # gzip_comp_level 6;
    # Задаёт число и размер буферов, в которые будет сжиматься ответ.
    # gzip_buffers 16 8k;
    # Устанавливает минимальную HTTP-версию запроса, необходимую для сжатия ответа.
    # gzip_http_version 1.1;
    # Разрешает сжатие ответа методом gzip для указанных MIME-типов в дополнение к “text/html”.
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    
    
    ##
    # Настройки виртуальных хостов.
    ##
    
    # Подключить дополнительные файлы настроек.
    include /etc/nginx/conf.d/*.conf;
    # Подключить настройки активных сайтов.
    include /etc/nginx/sites-enabled/*;
}

Для учета изменений настроек нужно выполнить

# service nginx reload; service nginx restart

PHP

Установка php-fpm

# apt-get install php5-mysql php5-fpm

После установки нужно в файле /etc/php5/fpm/php.ini заменить

;cgi.fix_pathinfo=1

на

cgi.fix_pathinfo = 0

и перезапустить сервис

# service php5-fpm restart

для устранения некой уязвимости.

Ссылки