Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
wiki:nginx-phpfpm [2015/06/01 03:45] [Перенаправление обработки php-скриптов внутреннему серверу «PHP-FPM»] |
wiki:nginx-phpfpm [2015/06/01 03:52] синтаксим |
||
---|---|---|---|
Строка 85: | Строка 85: | ||
<code bash>sudo nano /etc/nginx/common/upstream</code> | <code bash>sudo nano /etc/nginx/common/upstream</code> | ||
и добавим в него строчки | и добавим в него строчки | ||
- | <code> | + | <code=php> |
upstream php-fpm | upstream php-fpm | ||
{ | { | ||
Строка 95: | Строка 95: | ||
Редактируем файл «/etc/nginx/sites-available/example.com». Добавляем строчку | Редактируем файл «/etc/nginx/sites-available/example.com». Добавляем строчку | ||
- | <code> | + | <code=php> |
include common/upstream; | include common/upstream; | ||
</code> | </code> | ||
Строка 101: | Строка 101: | ||
Далее описываем перенаправление от HTTP к HTTPS, если, конечно, это планируется. В таком случае необходимо наличие сертификатов для HTTPS (см. [[wiki:руководство_по_ubuntu_server:безопасность:certificates|Сертификаты]]) | Далее описываем перенаправление от HTTP к HTTPS, если, конечно, это планируется. В таком случае необходимо наличие сертификатов для HTTPS (см. [[wiki:руководство_по_ubuntu_server:безопасность:certificates|Сертификаты]]) | ||
- | <code> | + | <code=php> |
server | server | ||
{ | { | ||
Строка 112: | Строка 112: | ||
Начинаем описывать конфигурацию сайта | Начинаем описывать конфигурацию сайта | ||
- | <code> | + | <code=php> |
server | server | ||
{ | { | ||
Строка 118: | Строка 118: | ||
Сетевой порт для приема соединений: 80 — обычный HTTP; 443 — HTTPS (см. выше) | Сетевой порт для приема соединений: 80 — обычный HTTP; 443 — HTTPS (см. выше) | ||
- | <code> | + | <code=php> |
# Порты | # Порты | ||
listen 80; | listen 80; | ||
Строка 124: | Строка 124: | ||
</code> | </code> | ||
Корневая директория сайта работающего на данном сервере | Корневая директория сайта работающего на данном сервере | ||
- | <code> | + | <code=php> |
root /var/www; | root /var/www; | ||
</code> | </code> | ||
Возможные имена индексных файлов (их «Nginx» пытается открыть если он получил запрос вида «example.com/», вместо явного «example.com/index.html») | Возможные имена индексных файлов (их «Nginx» пытается открыть если он получил запрос вида «example.com/», вместо явного «example.com/index.html») | ||
- | <code> | + | <code=php> |
index index.php index.html index.htm; | index index.php index.html index.htm; | ||
</code> | </code> | ||
Имя сервера -- обычно доменное имя Вашего сервера | Имя сервера -- обычно доменное имя Вашего сервера | ||
- | <code> | + | <code=php> |
server_name example.com www.example.com; | server_name example.com www.example.com; | ||
</code> | </code> | ||
Строка 178: | Строка 178: | ||
Файлы сертификатов для «HTTPS» | Файлы сертификатов для «HTTPS» | ||
- | <code> | + | <code=php> |
ssl_certificate /etc/ssl/certs/example.com_nginx.crt; # сертификат (можно свободно распространять) | ssl_certificate /etc/ssl/certs/example.com_nginx.crt; # сертификат (можно свободно распространять) | ||
ssl_certificate_key /etc/ssl/private/example.com_nginx.key; # приватный ключ (секретный файл - НИКОМУ НЕ ПОКАЗЫВАТЬ) | ssl_certificate_key /etc/ssl/private/example.com_nginx.key; # приватный ключ (секретный файл - НИКОМУ НЕ ПОКАЗЫВАТЬ) | ||
</code> | </code> | ||
Дополнительные параметры требуемые для «HTTPS» | Дополнительные параметры требуемые для «HTTPS» | ||
- | <code> | + | <code=php> |
ssl_dhparam /etc/ssl/private/example.com_nginx.dh.key; # писать эту строчку только если файл есть | ssl_dhparam /etc/ssl/private/example.com_nginx.dh.key; # писать эту строчку только если файл есть | ||
ssl_session_timeout 20m; # время 20 минут | ssl_session_timeout 20m; # время 20 минут | ||
Строка 194: | Строка 194: | ||
Продолжаем редактировать файл «/etc/nginx/sites-available/example.com». Подгружаем созданный выше конфигурационный файл с описанием настроек SSL | Продолжаем редактировать файл «/etc/nginx/sites-available/example.com». Подгружаем созданный выше конфигурационный файл с описанием настроек SSL | ||
- | <code> | + | <code=php> |
# Настройка шифрования SSL | # Настройка шифрования SSL | ||
include common/ssl; | include common/ssl; | ||
Строка 202: | Строка 202: | ||
Указание максимального размера запроса -- необходимо если сервер будет использоваться для загрузки больших файлов (например, для построения небольшого облачного хранилища на основе «ownCloud», эта строчка по сути делает то же что и указанные выше при настройке «PHP-FPM», только теперь для «Nginx») | Указание максимального размера запроса -- необходимо если сервер будет использоваться для загрузки больших файлов (например, для построения небольшого облачного хранилища на основе «ownCloud», эта строчка по сути делает то же что и указанные выше при настройке «PHP-FPM», только теперь для «Nginx») | ||
- | <code> | + | <code=php> |
client_max_body_size 200m; # увеличение максимального объема файла для загрузки до 200МБ | client_max_body_size 200m; # увеличение максимального объема файла для загрузки до 200МБ | ||
</code> | </code> | ||
Ещё одна опция | Ещё одна опция | ||
- | <code> # Buffers | + | <code=php> # Buffers |
fastcgi_buffers 64 4K; | fastcgi_buffers 64 4K; | ||
</code> | </code> | ||
Строка 217: | Строка 217: | ||
И укажем в нём | И укажем в нём | ||
- | <code> | + | <code=php> |
add_header X-Frame-Options "SAMEORIGIN"; | add_header X-Frame-Options "SAMEORIGIN"; | ||
add_header X-Content-Type-Options "nosniff"; | add_header X-Content-Type-Options "nosniff"; | ||
Строка 223: | Строка 223: | ||
Сохраним и закроем файл, а затем подключим его строкой | Сохраним и закроем файл, а затем подключим его строкой | ||
- | <code> | + | <code=php> |
include common/security; | include common/security; | ||
</code> | </code> | ||
Строка 236: | Строка 236: | ||
и введём | и введём | ||
- | <code>gzip on; | + | <code=php>gzip on; |
gzip_disable "msie6"; | gzip_disable "msie6"; | ||
gzip_comp_level 6; | gzip_comp_level 6; | ||
Строка 246: | Строка 246: | ||
Следует сохранить, закрыть и затем подключить этот файл срочкой | Следует сохранить, закрыть и затем подключить этот файл срочкой | ||
- | <code> | + | <code=php> |
include common/gzip; | include common/gzip; | ||
</code> | </code> | ||
Строка 259: | Строка 259: | ||
Корневая директория | Корневая директория | ||
- | <code> | + | <code=php> |
location "/" | location "/" | ||
{ | { | ||
Строка 267: | Строка 267: | ||
</code> | </code> | ||
К примеру, если хочется построить сайт на основе «WordPress», то можно описать корневую директорию так | К примеру, если хочется построить сайт на основе «WordPress», то можно описать корневую директорию так | ||
- | <code> | + | <code=php> |
location "/" | location "/" | ||
{ | { | ||
Строка 278: | Строка 278: | ||
Директории можно описывать по одной в этом же файле, но это не удобно и не наглядно. А можно указать строчку | Директории можно описывать по одной в этом же файле, но это не удобно и не наглядно. А можно указать строчку | ||
- | <code> include common/locations/*.inc;</code> | + | <code=php> include common/locations/*.inc;</code> |
которая укажет «Nginx», что нужно подключить все файлы в директории «/etc/common/locations/» которые соответствуют шаблону «*.inc», таким образом, если один из файлов нужно будет временно отключить, то его можно просто переименовать убрав расширение в имени. Создадим директорию где будут хранится эти файлы | которая укажет «Nginx», что нужно подключить все файлы в директории «/etc/common/locations/» которые соответствуют шаблону «*.inc», таким образом, если один из файлов нужно будет временно отключить, то его можно просто переименовать убрав расширение в имени. Создадим директорию где будут хранится эти файлы | ||
<code=bash>sudo mkdir /etc/nginx/common/locations</code> | <code=bash>sudo mkdir /etc/nginx/common/locations</code> | ||
Строка 286: | Строка 286: | ||
sudo nano /etc/nginx/common/locations/restricted.inc</code> | sudo nano /etc/nginx/common/locations/restricted.inc</code> | ||
со строчками | со строчками | ||
- | <code> | + | <code=php> |
location ^~ "/restricted/" | location ^~ "/restricted/" | ||
{ | { | ||
Строка 305: | Строка 305: | ||
Натройки «Wordpress», который, в данном примере, находится в папке «/var/www/wordpress» будут описаны в файле «/etc/nginx/common/locations/wordpress.inc» | Натройки «Wordpress», который, в данном примере, находится в папке «/var/www/wordpress» будут описаны в файле «/etc/nginx/common/locations/wordpress.inc» | ||
- | <code>sudo touch /etc/nginx/common/locations/wordpress.inc | + | <code=bash>sudo touch /etc/nginx/common/locations/wordpress.inc |
sudo nano /etc/nginx/common/locations/wordpress.inc</code> | sudo nano /etc/nginx/common/locations/wordpress.inc</code> | ||
Указываем виртуальную директорию (используется для удобства и читабельности) в которую будут перенаправляться запросы при необходимости | Указываем виртуальную директорию (используется для удобства и читабельности) в которую будут перенаправляться запросы при необходимости | ||
Строка 352: | Строка 352: | ||
Создадим файл настроек для «ownCloud» и отредактируем его | Создадим файл настроек для «ownCloud» и отредактируем его | ||
- | <code>sudo touch /etc/nginx/common/locations/owncloud.inc | + | <code=bash>sudo touch /etc/nginx/common/locations/owncloud.inc |
sudo nano /etc/nginx/common/locations/owncloud.inc</code> | sudo nano /etc/nginx/common/locations/owncloud.inc</code> | ||
Многое аналогично примеру для «Wordpress» | Многое аналогично примеру для «Wordpress» | ||
Строка 413: | Строка 413: | ||
==== Перенаправление обработки php-скриптов внутреннему серверу «PHP-FPM» ==== | ==== Перенаправление обработки php-скриптов внутреннему серверу «PHP-FPM» ==== | ||
- | В примерах выше использовался файл «/etc/common/php-fpm» — в нём идет перенаправление обработки php-скриптов внутреннему серверу «PHP-FPM» | + | В примерах выше использовался файл «/etc/nginx/common/php-fpm» — в нём идет перенаправление обработки php-скриптов внутреннему серверу «PHP-FPM» |
<note important> | <note important> | ||
Строка 421: | Строка 421: | ||
Создаём этот файл | Создаём этот файл | ||
- | <code>sudo touch /etc/nginx/common/php-fpm | + | <code=bash>sudo touch /etc/nginx/common/php-fpm |
sudo nano /etc/nginx/common/php-fpm</code> | sudo nano /etc/nginx/common/php-fpm</code> | ||
с содержанием | с содержанием | ||
Строка 443: | Строка 443: | ||
==== Кеширование ==== | ==== Кеширование ==== | ||
+ | Выше, в примерах, был упомянут файл «/etc/nginx/common/cache» | ||
- | Сайт работает значительно лучше когда часть контента сохранена на стороне клиента с прошлого посещения сайта. Не все файлы можно кешировать. Поэтому описание кеширования производится в самом конце (т.е. эти настройки будут иметь наименьший приоритет и есть шанс что это не повлияет на правильную работу сайта). Создаём файл с параметрами для кеширования | + | Сайт работает значительно лучше когда часть контента сохранена на стороне клиента с прошлого посещения сайта. Не все файлы можно кешировать. Поэтому описание кеширования производится в самом конце (т.е. эти настройки будут иметь наименьший приоритет и есть шанс что это не повлияет на правильную работу сайта). Создадим файл с параметрами для кеширования |
- | <code>sudo touch /etc/nginx/common/cache | + | <code=bash>sudo touch /etc/nginx/common/cache |
sudo nano /etc/nginx/common/cache</code> | sudo nano /etc/nginx/common/cache</code> | ||
где укажем | где укажем | ||
- | <code>location ~* ".+\.(?:ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|css|swf|js|atom|jpe?g|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$" | + | <code=php>location ~* ".+\.(?:ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|css|swf|js|atom|jpe?g|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$" |
{ | { | ||
access_log off; | access_log off; | ||
Строка 454: | Строка 455: | ||
expires max; | expires max; | ||
}</code> | }</code> | ||
- | |||
- | и указываем считывать этот файл строчкой в «/etc/nginx/sites-available/example.com» | ||
- | <code> | ||
- | include common/cache; | ||
- | </code> | ||
==== Завершение редактирования конфигурации ==== | ==== Завершение редактирования конфигурации ==== | ||
Закрываем фигурные скобки директивы «server» в «/etc/nginx/sites-available/example.com» | Закрываем фигурные скобки директивы «server» в «/etc/nginx/sites-available/example.com» | ||
- | <code> | + | <code=php> |
} | } | ||
</code> | </code> |