Меню Рубрики

Установка nginx исходники centos

Предложение от 8host.com

Установка Nginx из исходного кода на сервере CentOS 6.4

Nginx (произносится «engine x») – это популярный обратный прокси и HTTP-сервер, а также почтовый прокси-сервер.

Открытый веб-сервер Nginx использует для обслуживания клиентов механизм epoll (в отличие от Apache, пул которого может состоять из процессов и потоков одновременно). Nginx пользуется популярностью благодаря своей скорости.

Требования

Для выполнения данного руководства понадобится виртуальный выделенный сервер с доменным именем.

Примечание: в качестве домена в статье используется example.com.

Кроме того, нужно установить пакеты для сборки исходников, которые содержат библиотеки для разработки и компиляторы исходного кода.

yum -y install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel

Создайте каталог для хранения исходного кода:

Теперь все подготовлено к выполнению инструкций данной статьи.

Зачем собирать программы из исходников?

Компилировать исходный код нужно, чтобы:

  • Обновить программу до последней доступной версии сразу после ее выхода.
  • Устранить уязвимости в системе безопасности.
  • Исправить известные ошибки, влияющие на сервис.
  • Изменить некоторые значения по умолчанию (например, имя сервера).
  • Применить патчи для исправления выявленных ошибок.

Если же ПО сервера зависит от более старых версий программ, собирать программу из исходников необязательно.

Примечание: менеджеры пакетов не отвечают за обновление скомпилированных программ, потому их необходимо обновлять до последней доступной версии самостоятельно.

Модули Nginx и сторонние модули

Nginx имеет множество модулей, с помощью которых можно расширять функциональность VPS.

Среди наиболее популярных сторонних модулей для Nginx следует отметить:

  • SPDY (протокол для передачи контента); был внедрен в nginx 1.5.0, а ранее предоставлялся в качестве патча.
  • Google Pagespeed при помощи передовых технологий уменьшает время загрузки страницы, ускоряет сайт и увеличивает производительность связанных с ним ресурсов (CSS, JavaScript, изображения), не требуя изменить существующий контент или обработку.
  • ModSecurity – это открытый брандмауэр для веб-приложений, способный защитить сервер приложений от известных атак.
  • TCP Proxy позволяет nginx вместо стандартного сокета использовать для проксирования сервер tcp.

Сборка Nginx из исходного кода

Загрузка исходников

Найдите номер текущей версии Nginx на сайте проекта.

Чтобы загрузить код, используйте команды:

nginxVersion=»1.5.5″
wget http://nginx.org/download/nginx-$nginxVersion.tar.gz
tar -xzf nginx-$nginxVersion.tar.gz
ln -sf nginx-$nginxVersion nginx

Подготовка исходного кода

Прежде чем приступить к компилированию, нужно задать базовые параметры nginx.

Полный список доступных параметров можно найти, набрав:

Ниже приведен список основных парамтеров, переопределяющих стандартные системные пути в /etc/ во избежание ошибок. Параметры user и group используются для запуска рабочих процессов nginx без привилегий.

—user
—group
—prefix
—sbin-path
—conf-path
—pid-path
—lock-path
—error-log-path
—http-log-path

  • —with-http_gzip_static_module разрешает сборку модуля gzip (прежде чем обслужить файл для клиента с поддержкой gzip, этот модуль будет искать предварительно сжатые файлы; его цель – предотвратить многократное сжатие одного и того же файла). Данный модуль необходим для уменьшения объема отправляемой информации.
  • —with-http_stub_status_module разрешает другие плагины для nginx, что откроет доступ к данным о состоянии веб-сервера.
  • —with-http_ssl_module — разрешает сборку модуля для запуска HTTPS-сервера. Также читайте статью «Создание сертификата SSL на сервере nginx в CentOS 6».
  • —with-pcre – поиск соответствий регулярных выражений при определении маршрутов.
  • —with-file-aio разрешает асинхронный ввод/вывод, что лучше, чем вариант по умолчанию (рекомендуется использовать этот параметр, если пользователи могут загружать статические файлы).
  • —with-http_realip_module позволяет получить IP клиента с помощью балансировщика нагрузки.
  • —without-http_scgi_module отключает модуль SCGI (как правило, это делается при использовании скриптов CGI).
  • —without-http_uwsgi_module отключает поддержку модуля UWSGI (опять же, при использовании скриптов CGI).
  • —without-http_fastcgi_module отключает модуль FastCGI (при использовании скриптов CGI).
Читайте также:  Установки по переработке гальванического шлама

Пример конфигурации кода

cd nginx
./configure \
—user=nginx \
—group=nginx \
—prefix=/etc/nginx \
—sbin-path=/usr/sbin/nginx \
—conf-path=/etc/nginx/nginx.conf \
—p > —lock-path=/var/run/nginx.lock \
—error-log-path=/var/log/nginx/error.log \
—http-log-path=/var/log/nginx/access.log \
—with-http_gzip_static_module \
—with-http_stub_status_module \
—with-http_ssl_module \
—with-pcre \
—with-file-aio \
—with-http_realip_module \
—without-http_scgi_module \
—without-http_uwsgi_module \
—without-http_fastcgi_module

Сборка кода Nginx

Настроив код согласно требованиям, запустите:

Запуск nginx

Добавьте в систему пользователя nginx:

Теперь нужно настроить автоматический запуск файла /etc/init.d/nginx при загрузке системы:

Примечание: при желании этот код можно получить так:

wget -O /etc/init.d/nginx https://gist.github.com/sairam/5892520/raw/b8195a71e944d46271c8a49f2717f70bcd04bf1a/etc-init.d-nginx

Нужно сделать этот файл исполняемым, чтобы иметь возможность использовать его как сервис:

Теперь настройте автоматическую загрузку сервиса при запуске системы:

chkconfig —add nginx
chkconfig —level 345 nginx on

В файле /etc/nginx/nginx.conf нужно увеличить параметры types_hash_bucket_size и server_names_hash_bucket_size.

http <
include mime.types;
default_type application/octet-stream;
# add the below 2 lines under http around line 20
types_hash_bucket_size 64;
server_names_hash_bucket_size 128;

Запустите сервер (VPS будет запущен на порт 80).

Завершающие действия

Посетите доменное имя или IP в браузере. На экране появится:

Готово! Сборка nginx завершена.

Поддержка nginx

При внесении каких-либо изменений в бинарные файлы nginx нужно перезагружать веб-сервер:

Изменив конфигурации в файле nginx.conf, используйте команду:

Обновление веб-сервера nginx

Чтобы обновить nginx до последней версии, посетите официальный сайт проекта.

Запустите следующие команды, чтобы получить код:

источник

Как установить Nginx на CentOS 7

О Nginx

Этот урок научит вас, как установить и запустить Nginx на сервере CentOS 7.

Предпосылки

Действия, описанные в этом руководстве требуют, чтобы пользователь имел привилегии суперпользователя. Вы можете увидеть, как устанавливается, следуя пунктам 3 и 4 в учебнике по начальной настройки сервера с CentOS 7.

Шаг Один. Добавление репозитория Nginx

Чтобы добавить CentOS 7 EPEL, откройте терминал и введите следующую команду:

Шаг второй. Установка Nginx

Теперь, когда хранилище Nginx добавлено на вашем сервере, установите Nginx с помощью следующей команды yum:

После того, как вы ответите утвердительно на запрос, Nginx завершит установку на виртуальный частный сервер (VPS).

Шаг третий. Запуск Nginx

Nginx не запускается самостоятельно. Чтобы запустить Nginx, наберите следующее:

Если вы используете брандмауэр, выполните следующие команды, чтобы разрешить HTTP и HTTPS трафик:

Вы можете сделать выборочную проверку сразу же, чтобы убедиться, что все прошло, как и планировалось, посетив публичный IP-адрес вашего сервера в вашем веб-браузере (смотрите примечание по следующей статье, чтобы узнать ваш публичный IP-адрес, если у вас нет этой информации еще):

Вы увидите веб-страницу Nginx в CentOS 7 по умолчанию, который есть для информации и в целях тестирования. Это должно выглядеть примерно так:

Если вы видите эту страницу, то ваш веб-сервер теперь установлен правильно.

Перед тем, как продолжить, вы, вероятно, захотите включить Nginx для запуска при загрузке системы. Для этого введите следующую команду:

Поздравления! теперь установлен Nginx и работает!

Как найти публичный IP-адрес вашего сервера

Для того, чтобы найти публичный IP-адрес вашего сервера, найдите сетевые интерфейсы на вашей машине, набрав:

Вы можете увидеть здесь несколько интерфейсов в зависимости от аппаратного обеспечения, доступного на вашем сервере. Интерфейс lo локального интерфейса, который замыкает на себя, не то, который мы хотим. В нашем примере выше, eth0 интерфейс, это то, что мы хотим.

Читайте также:  Установка второго роутера для усиления сигнала

Если у вас есть имя интерфейса, вы можете запустить следующую команду, чтобы показать общественный IP-адрес вашего сервера. Подставьте имя интерфейса, найденное выше:

Корневой сервер и конфигурация

Если вы хотите начать обслуживать собственные страницы или приложения через Nginx, вы хотите знать расположение файлов конфигурации и корневой сервер по умолчанию каталог Nginx.

Корневой сервер по умолчанию

Корневой каталог сервера по умолчанию /usr/share/nginx/html. Файлы, помещенные там, будут обслуживаться на вашем веб – сервере. Это место указано в серверном файле конфигурации блока по умолчанию, который поставляется в комплекте с Nginx, который находится в файле /etc/nginx/conf.d/default.conf.

Конфигурация блока сервера

Любые дополнительные серверные блоки, известные как виртуальные хосты в Apache, могут быть добавлены путем создания новых файлов конфигурации в файле /etc/nginx/conf.d. Файлы, которые заканчиваются на .conf в этой директории будет загружены во время запуска Nginx.

Глобальные конфигурации Nginx

Основной файл конфигурации Nginx расположен в файле /etc/nginx/nginx.conf. Здесь вы можете изменить настройки, как пользователь, который запускает процесс демона Nginx, число рабочих процессов, которые порождены, когда Nginx работает.

Узнать больше

После того как вы установили Nginx на вашем облаке сервера, вы можете перейти к установке стека LEMP.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

источник

Установка Nginx в CentOS 7

Nginx (или Engine X) — это бесплатный, свободный и мощный HTTP- и прокси-сервер с открытым исходным кодом и архитектурой на основе обработки событий. Он написан на языке программирования С и может работать как в Windows, так и в Unix-подобных системах.

Кроме функции веб-сервера, программа может работать в качестве обратного прокси, прокси для TCP/UDP или почты, а также в качестве балансировщика нагрузки. Nginx используется для обеспечения работы огромного количества сайтов в сети интернет, а также известна, как самый высокопроизводительный веб-сервер. В этой статье мы рассмотрим, как выполняется установка Nginx CentOS 7, а также как выполнить первоначальную настройку программы.

Установка Nginx в CentOS 7

Веб-сервер Nginx есть в официальных репозиториях дистрибутива, та версия уже устарела, и если вы хотите получить новую версию с современными возможностями, вам придётся использовать репозиторий EPEL. Для его добавления в систему выполните:

Затем можно установить Nginx:

Чтобы запустить сервис Nginx, выполните:

Затем необходимо добавить программу в автозагрузку:

Далее надо разрешить трафик для веб-сервера в брандмауэре системы:

firewall-cmd —zone=public —permanent —add-service=http
firewall-cmd —zone=public —permanent —add-service=https

И перезагрузить брандмауэр:

Если все было сделано правильно, то, открыв адрес сервера, на который вы устанавливали Nginx, вы увидите страницу по умолчанию:

Настройка расположения файлов сайта

Установка Nginx CentOS 7 завершена, теперь будет рассмотрена настройка Nginx. Нам нужно сообщить Nginx, где будут находится файлы нашего сайта. В конфигурационном файле /etc/nginx.conf, уже настроен один виртуальный хост. Его мы и будем использовать. Здесь указана опция default_server, поэтому он будет открываться для всех запросов к Nginx:

Сначала нужно создать само расположение файлов. Создайте папку /var/www/html/default, в которой будут храниться наши файлы сайтов, и дайте на неё права пользователю nginx:

mkdir /var/www/html/default
chown nginx:nginx /var/www/html/default

Читайте также:  Установка зтд на калину

Также можно создать файл index.html в этой папке для теста веб-сервера с таким текстом:

It words!

Этот файл тоже должен принадлежать пользователю Nginx. Далее в конфигурационном файле /etc/nginx/nginx.conf найдите секцию server и замените значение параметра root на /var/www/html/default:

Теперь Nginx будет брать файлы сайта из этого каталога при всех запросах. Перезапустите Nginx:

Затем откройте снова адрес сервера в браузере, чтобы посмотреть, работает ли наше расположение файлов. Если всё было сделано правильно, вы увидите сообщение it works:

Если возникает ошибка, убедитесь, что у Nginx есть права для доступа к этому файлу, а также, что SELinux отключён или правильно настроен.

Настройка PHP-FPM Nginx CentOS

Если вам нужен Nginx, то скорее всего, вам нужно также настроить его для работы с интерпретатором PHP. Дальше будет разобрана настройка php-fpm Nginx CentOS 7. Прочитать более подробно про установку PHP 7 в CentOS можно в отдельной статье, а в этой статье мы будем работать с версией, доступной в официальных репозиториях. Для Nginx нам необходимо установить пакет php-fpm:

Затем запустите службу php-fpm командой:

Откройте конфигурационный файл php-fpm, который находится по адресу /etc/php-fpm.d/www.conf и посмотрите, на каком порту ожидает соединений запущенная служба. По умолчанию это 9000:

Далее нам осталось только связать Nginx с новой службой. Для этого в секцию server добавьте такой код:

\.php$ <
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
include fastcgi_params;
>

Здесь очень важно значение этого параметра:

Оно должно соответствовать тому, которое мы видели в файле /etc/php-fpm.d/www.conf. Это адрес и порт на котором ожидает подключения служба php-fpm. Всё остальное можно оставить как есть и модифицировать при необходимости. Затем перезагрузите Nginx:

sudo systemctl reload nginx

Опция reload позволяет перечитать конфигурацию без перезагрузки веб-сервера. Осталось создать тестовый файл с таким содержимым:

Затем откройте адрес сервера на который был установлен Nginx плюс phpinfo.php в браузере:

Теперь вы увидите, что php-fpm nginx настроен полностью и корректно работает.

Обратите внимание, что секция location для php — это регулярное выражение и если у вас будут более общие регулярные выражения, то эта секция должна находиться перед ними, потому что Nginx не будет проверять все регулярные выражения и искать самое подходящее, а выберет первое, которое совпадёт.

Выводы

В этой статье мы разобрали, как установить Nginx CentOS 7, а также как настроить первый веб-сайт и подключить обработку скриптов с помощью интерпретатора php-fpm. В следующих статьях разберёмся с настройкой виртуальных хостов для Nginx и SSL-сертификатов.

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.

2 комментария

А зачем php в статье про nginx? мб стоит как то более подробно расписать возможности nginx, например stream проксирование, либо возможность разным сайтам работать под разными пользователями. Подобных этой статей слишком много уже.

почему синтаксис $yum install nginx? ведь должно быть
#yum install nginx
$ sudo yum install nginx
или не прав?

источник

Добавить комментарий

Adblock
detector