Разное

Restart nginx ubuntu: Как перезапустить Nginx | Losst

Содержание

Как перезапустить Nginx | Losst

Если вы начинающий администратор или только перенесли свой проект на VPS и еще не со всем разобрались, то у вас может возникнуть вопрос как перезапустить Nginx. Это очень популярный веб-сервер, такой же популярный, как и Apache и достаточно часто используется для различных проектов.

Перезапуск веб-сервера может понадобиться после того, как вы изменили его настройки, добавили новый домен и так далее. В этой небольшой статье мы рассмотрим как выполняется перезагрузка Nginx на сервере.

Содержание статьи:

Как перезапустить Nginx

Первое что вам нужно — это получить доступ по ssh к серверу, но если вы уже меняли там какие-либо настройки, то, скорее всего, доступ у вас есть, так что этот момент упустим. Другой момент, это система управления процессами, сейчас большинство, если не все популярные дистрибутивы, используют systemd. Поэтому я буду описывать работу именно с ней. И еще, вам нужен именно VPS, или сервер, на хостинге такое сделать у вас не получится, даже если есть ssh доступ.

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

nginx -t

Если это производственный сервер, то пользователи вообще не должны заметить что был перезапуск Nginx, а если будут проблемы то после установки веб-сервер не запустится и будет лежать пока вы их не решите. Только теперь можно перезапустить Nginx:

systemctl restart nginx

Если нужно только перечитать конфигурационные файлы выполните:

 

systemctl reload nginx

 

Есть еще один путь, можно передать команду перезапуска самому сервису nginx с помощью опции -s:

nginx -s reload

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

systemctl status nginx

systemctl stop nginx

systemctl start nginx

Перезапуск Nginx с помощью ISPManager

Панель управления VPS ISPManager довольно популярна среди пользователей и если вы используете ее на своем сервере, то можете перезапустить Nginx с помощью нее. Для этого авторизуйтесь в панели, перейдите на вкладку «Система», «Службы», а затем найдите там пункт «Nginx», выделите его и нажмите кнопку «Перезапуск»:

Готово, теперь Nginx перезапущен.

Выводы

В этой небольшой статье мы рассмотрели как перезапустить Nginx на вашем сервере. Если у вас остались вопросы, спрашивайте в комментариях!

Конференция HighLoad в которой рассказывается что нового в Nginx:

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

Загрузка…

Как часто вы перезапускаете службу ngnix на веб-сервере Linux?

Эта статья в блоге будет посвящено различным путям перезапуска Nginx в системе Linux через командную строку и Nginx, запущенном в контейнере докер.

Я рассмотрел этот момент как на сервере Systemd, так и на системе SysV init / Upstart.

Откройте терминал и войдите в систему с помощью пользователя root / sudo для запуска нижеприведенных команд.

Перезапустить HTTP-сервер Nginx

CentOS 7, Ubuntu 18.04 и Ubuntu16.04 являются systemd операционной системой.

Чтобы перезапустить службу nginx, вам нужно использовать инструмент командной строки systemctl.

Рекомендуется проверить синтаксис перед перезагрузкой службы nginx,

$ sudo nginx -t
$ sudo systemctl restart nginx

Если вы перезагружаетесь после изменения файла конфига nginx, вам необходимо сначала перезагрузить systemd

$ sudo systemctl daemon-reload

Затем перезапустите nginx

$ sudo systemctl restart nginx

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

sudo systemctl reload nginx

Перезапуск Nginx в системе Upstart / SysV init

Если вы используете систему с upstart или системой SysV init. например, Ubuntu 14.04, CentOS 6, вам необходимо управлять службой nginx с помощью service

$ sudo service nginx restart

Вы также можете использовать абсолютный путь для скрипта инициализации, например

sudo /etc/init.d/nginx restart

Перезапуск Nginx внутри контейнера Docker

Для nginx, запущенного внутри контейнера Docker, рекомендуется перезагрузить конфигурацию вместо перезапуска службы.

docker exec <nginx-container-name-or-id> nginx -s reload

Если вы должны перезапустить процесс nginx, рассмотрите возможность перезапуска контейнера с помощью команды:

$ docker restart <container name|id>

Пример:

$ docker restart nginx

Где nginx — это имя контейнера nginx.

Перезапуск nginx — это простой процесс, но вы должны быть осторожны, чтобы гарантировать, что внесенное изменение имеет правильный синтаксис, чтобы избежать сбоя во время перезапуска.

Команда, используемая для проверки синтаксиса конфигурации, — nginx -t

 

Поделитесь статьей:

Установка Nginx Ubuntu | Losst

На данный момент самую большую популярность набрали два веб-сервера. Это Apache и Ngnix. У каждого из них есть свои плюсы и минусы. Apache был разработан еще в 1995 году и при его разработке учитывались не все возможные потребности пользователей, он потребляет много памяти и ресурсов системы, зато он прост в настройке. Nginx был разработан чуть позже в 2002 году уже учитывая ошибки Apache и ориентируясь на максимальную производительность.

Мы не будем подробно вникать в плюсы и минусы этих обоих веб-серверов. У каждого из них своя область применения.  В этой инструкции будет рассмотрена установка Nginx в Ubuntu. Хотя я буду говорить об Ubuntu, все действия подойдут и для других дистрибутивов. Настройка Nginx везде одинакова, только команда установки отличается.

Содержание статьи:

Установка компонентов

Первым делом нужно установить сам веб-сервер в систему. Программа есть в официальных репозиториях, но ее версия уже немного устарела, поэтому если хотите самую новую версию, нужно добавить PPA:

sudo apt-add-repository ppa:nginx/stable

Сейчас в официальных репозиториях доступна версия 1.10.0, а в стабильной PPA уже доступна 1.10.1. Если для вас версия не нужна можно обойтись и без PPA. Дальше обновите списки пакетов из репозиториев:

sudo apt update

И устанавливаем ngnix:

sudo apt install nginx

После того как установка сервера Nginx будет завершена добавим программу в автозагрузку, чтобы она запускалась автоматически:

sudo systemctl enable nginx

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

Настройка Nginx Ubuntu

Настройка Nginx Ubuntu намного сложнее чем Apache. Здесь мы не будем рассматривать все опции и возможности программы, а поговорим только об основном. Есть различные конфигурации, в которых Nginx используется в качестве прокси сервера, а основной сервер Apache, но нас это интересовать не будет. Нам нужна установка Nginx как самостоятельного веб-сервера.

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

  • /etc/nginx/nginx.conf — главный файл конфигурации
  • /etc/nginx/sites-available/* — файлы конфигурации для виртуальных хостов, проще говоря для каждого сайта.
  • /etc/nginx/sites-enabled/* — файлы конфигурации активированных сайтов.

На самом деле файлы конфигурации для виртуальных хостов читаются только из директории sites-enabled, но здесь содержаться ссылки на sites-available. Такая система была придумана, чтобы дать возможность отключать на время те или иные сайты, не стирая их конфигурацию. Все остальные файлы содержат только объявления переменных и стандартные настройки, которые изменять не нужно. Что же касается nginx.conf, то в него включаются все файлы из sites-enables, а поэтому они могут содержать все точно такие же инструкции. А теперь давайте рассмотрим главный файл конфигурации:

sudo vi /etc/nginx/nginx.conf

Как видите файл разделен на секции. Общая структура такова:

глобальные опции
events {}
http{
server {
location{}
}
server {}
}
mail {}

  • глобальные опции отвечают за работу всей программы.
  • events — эта секция содержит настройки для работы с сетью.
  • http — содержит настройки веб-сервера. Должна содержать секцию servier для тонкой настройки каждого сайта.
  • server — в этой секции содержится настройка каждого размещенного на веб-сервере сайта.
  • location — секция location может находиться только внутри секции server и содержит настройки только для определенного запроса.
  • mail — содержит настройки почтового прокси.

Перед тем как перейти к опциям, нужно сказать еще пару слов о синтаксисе строки в конфигурационном файле. Он выглядит вот так:

параметр значение дополнительное_значение…;

Строка должна обязательно заканчиваться «;», а все открытые скобки { должны быть закрыты.

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

  • user — пользователь, от имени которого будет работать программа.
  • worker_processes — устанавливает сколько процессов нужно запускать для параллелизации работы программы, нужно запускать не больше процессов, чем у вас есть ядер. Можно установить параметр auto и тогда программа определит это число сама.
  • pid = файл pid программы.
  • worker_rlimit_nofile — указывает максимальное количество файлов, которые может открыть программа. Рассчитывается как worker_processes * worker_connections* 2.

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

  • worker_connections — количество соединений, которые программа может обрабатывать одновременно на одном процессе. Если умножить worker_process на этот параметр, то мы получим максимальное количество пользователей, которые могут подключиться к серверу одновременно. Рекомендуется устанавливать значение от 1024 до 4048.
  • multi_accept — разрешить принимать много подключений одновременно, установите параметр on или off.
  • use — способ работы с сетевым стеком. По умолчанию используется poll, но для Linux эффективнее использовать epoll.

Дальше переходим самой главной секции — http. Здесь опций намного больше:

  • sendfile — использовать метод отправки данных sendfile. Значение on.
  • tcp_nodelay, tcp_nopush — отправлять заголовки и начало файла одним пакетом. Значение on.
  • keepalive_timeout — таймаут ожидания, перед тем как keepalive соединение будет разорвано, по умолчанию 65, но можно уменьшить до 10 секунд.
  • keepalive_requests — максимальное количество keepalive соединений от одного клиента, рекомендовано 100.
  • reset_timedout_connection — разрывать соединения после таймаута. Значение on.
  • open_file_cache — кэшировать информацию об открытых файлах. Строчка настройки выглядит вот так: open_file_cache max=200000 inactive=20s; max — максимальное количество файлов в кэше, время кэширования.
  • open_file_cache_valid — указывает по истечении какого времени нужно удалить информацию из кэша. Например: open_file_cache_valid 30s;
  • open_file_cache_min_uses — кэшировать информацию о файлах, которые были открыты как минимум указанное количество раз.
  • open_file_cache_errors — кэшировать информацию об отсутствующих файлах, значение on.

Основные параметры рассмотрели. Эти настройки помогут вам получить большую производительность от nginx. Секцию server и location мы рассмотрим в настройке виртуальных хостов.

Настройка сжатия Gzip

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

gzip on

Эту директиву можно использовать также в секции server, тогда она будет работать только для указного виртуального домена. Дальше настраиваем параметры сжатия настраиваются с помощью следующих опций:

  • gzip_min_length — минимальная длина страницы в байтах, при которой нужно использовать сжатие, например, 1000 (1 кб)
  • gzip_proxied — нужно ли сжимать проксированые запросы, any говорит, что нужно сжимать все.
  • gzip_types — типы файлов, которые нужно сжимать, например: text/plain application/xml application/x-javascript text/javascript text/css text/json;
  • gzip_disable «msie6» — в IE 6 сжатие не поддерживается, поэтому отключаем.
  • gzip_comp_level — уровень сжатия, доступны варианты от 1 до 10. 1 — минимальное, 10 — максимальное сжатие.

Настройка виртуальных хостов

Как вы знаете, на сервере может размещаться несколько сайтов. Все запросы приходят на ip сервера, а nginx уже определяет на основе домена какой контент нужно выдать. Для того чтобы nginx знал что к какому домену относится нужно настроить виртуальные хосты. Каждый хост принято размещать в отдельном файле. Настройка хоста находится в секции server, но поскольку все файлы из sites-enabled импортируются в секцию http, то логика структуры конфигурационного файла не нарушается.

Рассмотрим пример настройки:

vi /etc/nginx/sites-enabled/losst.ru.conf

  • listen 80 — указывает, что нужно ожидать подключения на порту 80, может также содержать опцию default-server, которая означает, что этот домен будет открывается если домен не был задан в запросе.
  • root /var/www/html — директория, в которой находятся файлы сайта.
  • index index.html — страница, которая будет открываться по умолчанию.
  • server_name — доменное имя сайта.
  • access_log — файл для записи лога запросов к серверу, может использоваться как глобально в секции http, так и для определенного типа файлов в location.
  • error_log — лог ошибок веб-сервера, может принимать дополнительный параметр, указывающий подробность лога. warn — максимум, crit — только критические ошибки.

Это все основные настройки виртуального хоста, после них он уже будет работать. Но тут есть еще секция location, которая позволяет настроить поведение сервера для определенных директорий и файлов. Синтаксис location такой:

location адрес {}

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

  • allow — разрешить доступ к местоположению для пользователей, all — всех, также можно указать ip или подсеть.
  • deny — запретить доступ к местоположению, all — для всех.
  • try-files — пытается открыть файлы в определенном порядке, открывает первый обнаруженный файл. Например, такая конструкция: $uri $uri/index.html $uri.html =404; сначала пытается открыть $uri, затем index.html, если не найден $uri.html, и аж потом, если ни одного из предложных файлов не существует, выдает ошибку 404.
  • expires — задает время кэширования браузером отданного элемента, например, 1d — один день, 2h — два часа, 30s — 30 секунд.

Кроме этих главных директив, здесь могут использоваться и другие. Чтобы получить больше подробностей, смотрите официальную документацию. Рассмотрим пару примеров:

Не выполнять логирование для favicon:

location = /favicon.ico {
log_not_found off;
access_log off;
}

Запретить доступ к файлам, начинающимся с точки:

location ~ /\. {
deny all;
}

Кэшировать обычные файлы на 90 дней:

location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
access_log off; log_not_found off; expires 90d;
}

После того, как установка и настройка nginx будет завершена проверяем конфигурацию на ошибки:

nginx -t

Затем перезагружаем сервер:

sudo service nginx reload

sudo service nginx restart

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

Просмотр статистики

Просмотр статистики работы веб-сервера очень важен. Установка nginx, должна содержать настройку возможности получения статистики. Для того чтобы это сделать добавьте такие строки к вашему хосту в секцию server:

location /basic-staus {
stats_stub;
allow 127.0.0.1
deny all;
}

Статистика будет доступна только с локального ip:

wget localhost/basic-status -O -

Выводы

Установка Nginx Ubuntu 16.04 завершена и теперь вы немного представляете как его настроить. Конечно, есть еще много вещей, которые мы не упомянули в статье, например, настройка обработки динамического контента php или настройка nginx Ubuntu в качестве прокси-сервера для apache. Возможно, это будет рассмотрено в следующих статях.

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

Загрузка…

Настройка Nginx | Losst

Веб-сервер Nginx — это один из самых популярных веб-серверов с очень высокой производительностью и быстрой обработкой статических запросов от пользователей. При правильной настройке можно добиться очень высокой производительности от этого веб-сервера. Nginx очень быстро справляется со статическими файлами, будь то html страницы или другие виды ресурсов.

В одной из предыдущих статей мы уже рассматривали установку Nginx в Ubuntu и настройку его основных параметров, в этой же статье я хочу больше остановиться на производительности и подготовке веб-сервера к использованию в боевых условиях. Что касается дистрибутива Linux, то сегодня мы будем рассматривать CentOS, эта система часто используется на серверах и с настройкой Nginx тут могут возникнуть некоторые сложности. Дальше будет рассмотрена настройка Nginx CentOS, поговорим как включить полную поддержку http2, google pagespeed, и настроить основной конфигурационный файл.

Содержание статьи:

1. Установка Nginx

В официальных репозиториях CentOS есть Nginx и он, скорее всего, уже установлен в вашей системе. Но мы хотим чтобы сайт работал по протоколу http2, который позволяет передавать все данные одним подключением, а это увеличивает производительность. Для работы по http2 вам понадобиться настроить SSL сертификат, но об этом уже написано в статье получение сертификата Lets Encrypt Nginx. Но это еще не все. для переключения с обычного SSL на HTTP2.0 в большинстве браузеров сейчас используется протокол ALPN, а он поддерживается начиная с OpenSSL 1.02. В то время, как в репозиториях есть только OpenSSL 1.01. Поэтому нам нужно установить версию Nginx, собранную с OpenSSL 1.02. Для этого можно использовать Broken Repo:

sudo yum -y install yum-utils
# sudo yum-config-manager --add-repo https://brouken.com/brouken.repo

Если вы используете репозиторий EPEL, то нужно указать что не надо из него брать Nginx:

 sudo yum-config-manager --save --setopt=epel.exclude=nginx*;

Теперь для установки правильной версии Nginx достаточно набрать:

sudo yum install nginx

Будет установлена самая последняя версия Nginx 1.13.2, с полной поддержкой ALPN. Дальше перейдем к настройке.

2. Настройка Nginx

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

глобальные опции
events {}
http{
server {
location{}
}
server {}
}

Сначала идут глобальные опции, которые задают основные параметры программы, например, от какого пользователя она будет запущена и количество процессов. Дальше есть секция events, в которой описано как Nginx будет реагировать на входящие подключения, затем идет секция http, которая объединяет все настройки касаемо работы протокола http. В ней находится секция server, каждая такая секция отвечает за отдельный домен, в секции server размещаются секции location, каждая из которых отвечает за определенный URL запроса, обратите внимание, что не файл на сервере, как в Apache, а именно URL запроса.

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

  • user — пользователь, от имени которого будет запущен сервер, должен быть владельцем каталога с файлами сайта, и от имени его же нужно запускать php-fpm;
  • worker_processes — количество процессов Nginx, которые будут запущены, нужно установить ровно столько, сколько у вас есть ядер, например, у меня — 4;
  • worker_cpu_affinity — этот параметр позволяет закрепить каждый процесс за отдельным ядром процессора, установите значение auto, чтобы программа сама выбрала что и к чему крепить;
  • worker_rlimit_nofile — максимальное количество файлов, которые может открыть программа, на каждое соединение нужно как минимум два файла и каждый процесс будет иметь указанное вами количество соединений, поэтому формула такая: worker_processes * worker_connections* 2, параметр worker_connections разберем чуть ниже;
  • pcre_jit — включите этот параметр для ускорения обработки регулярных выражений с помощью JIT компиляции;

В секции events стоит настроить два параметра:

  • worker_connections — количество соединений для одного процесса, должно быть достаточным для обработки входящих соединений. Сначала нам нужно знать сколько этих входящих соединений есть, для этого смотрим статистику по адресу ip_сервера/nginx_status. Как включить рассмотрим ниже. В строке Active Connections видим количество активных соединений с сервером, также нужно учесть что соединения с php-fpm тоже считаются. Дальше обратите внимание на поля accepted и handled, первое отображает обработанных подключений, второе — количество принятых. Из значения должны быть одинаковыми. Если отличаются значит соединений не хватает. Смотрите примеры, первый снимок проблема, второй — порядок. Для моей конфигурации оптимальной может быть цифра в 200 соединений (всего 800, учитывая 4 процесса):
  • multi_accept — позволяет программе принимать несколько соединений одновременно, тоже ускоряет работу, при большом количестве соединений;
  • accept_mutex — установите значение этого параметра в off, чтобы сразу все процессы получали уведомление про новые соединения;

Также в секции events рекомендуется использовать директиву use epoll, так как этот самый эффективный метод обработки входящих соединений для Linux, но этот метод применяется по умолчанию, поэтому не вижу смысла добавлять его вручную. Рассмотрим еще несколько параметров из секции http:

  • sendfile — использовать метод отправки данных sendfile. Самый эффективный метод для Linux.
  • tcp_nodelay, tcp_nopush — отправляет заголовки и тело запроса одним пакетом, работает немного быстрее;
  • keepalive_timeout — таймаут поддержания соединения с клиентом, если у вас нет очень медленных скриптов, то будет достаточно будет 10 секунд, устанавливаем значение сколько нужно чтобы пользователь мог быть подключен к серверу;
  • reset_timedout_connection — разрывать соединения после таймаута.
  • open_file_cache — кэшировать информацию об открытых файлах. Например, open_file_cache max=200000 inactive=120s; max — максимальное количество файлов в кэше, время кэширования.
  • open_file_cache_valid — когда нужно проверить актуальность файлов. Например: open_file_cache_valid 120s;
  • open_file_cache_min_uses — кэшировать только файлы, которые были открыты указанное количество раз;
  • open_file_cache_errors — запоминать ошибки открытия файлов.
  • if_modified_since — устанавливает каким образом будут обрабатываться заголовки if-modified-since. С помощью этого заголовка браузер может получить ответ 304 если страница не изменилась с момента последнего просмотра. Возможны варианты — не отправлять — off, отправлять при точном совпадении времени — exact, отправлять если время совпадает точно или больше — before;

Вот как-то так будет выглядеть настройка nginx conf:


user nginx;
worker_processes 4;
worker_cpu_affinity auto;
worker_rlimit_nofile 10000;
pcre_jit on;
error_log /var/log/nginx/error.log warn;
load_module "modules/ngx_pagespeed.so";
events {
multi_accept on;
accept_mutex off;
worker_connections 1024;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
open_file_cache max=200000 inactive=20s;
open_file_cache_valid 120s;
open_file_cache_errors on;
reset_timedout_connection on;
client_body_timeout 10;
keepalive_timeout 65;
include /etc/nginx/sites-enabled.*.conf
}

3. Настройка http2

Я не буду подробно описывать настройку секции server, потому что делал это уже в статье установка Nginx в Ubuntu и здесь мне нечего добавить, настройка SSL это достаточно обширная тема и тоже будет рассмотрена в отдельной статье. Но чтобы настроить http2 вам нужно иметь уже SSL. Далее, просто подправьте директиву listen в вашей секции server:

listen 194.67.215.125:443 default_server;

На:

listen 194.67.215.125:443 http2 default_server;

Вот таким простым способом можно включить http2 если перед этим была установлена правильная версия Nginx.

4. Настройка PageSpeed

Google Pagespeed — это модуль Nginx, который выполняет различные оптимизации для того, чтобы страницы грузились быстрее, веб-сервер работал эффективнее, а пользователи не чувствовали дискомфорта. Сюда входит кэширование, оптимизация html кода, оптимизация картинок, объединение javascript и css кода и многое другое. Все это выполняется на уровне Nginx, поэтому эффективнее, чем если бы вы это делали в php. Но тут есть один недостаток, модуль удаляет заголовок Last Modified.

Дело в том, что PageSpeed устанавливает очень долгий строк кэширования для всех файлов, а в имя файла добавляет его хэш. Так скорость загрузки ресурсов выходит намного выше, поскольку браузер будет запрашивать файлы только с новым хэшем, а LastModified удаляется чтобы пользователи смогли увидеть изменения в случае если какой-либо файл будет изменен. А теперь рассмотрим как установить модуль. Нам придется собрать его из исходных кодов.

Сначала установите инструменты для сборки, очень важно, если не установите, потом получите ошибку и не будете знать что делать:

yum install wget gcc cmake unzip gcc-c++ pcre-devel zlib-devel

Скачайте и распакуйте исходники Nginx для вашей версии, например, 1.13.3:

wget -c https://nginx.org/download/nginx-1.13.3.tar.gz
# tar -xzvf nginx-1.13.3.tar.gz

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

wget -c https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip
# unzip v1.12.34.2-stable.zip

 

Скачайте и распакуйте библиотеку оптимизации PageSpeed в папку с исходниками модуля:

cd ngx_pagespeed-1.12.34.2-stable/
# wget -c https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz
# tar -xvzf 1.12.34.2-x64.tar.gz

Скачайте и распакуйте исходники OpenSSL 1.02:

wget -c https://www.openssl.org/source/openssl-1.0.2k.tar.gz -O /opt/lib/$OPENSSL.tar.gz
# tar xvpzf openssl-1.0.2k.tar.gz

Теперь нам нужно собрать модуль. Сначала смотрим опции, с которыми собран текущий Nginx:

nginx -V

А теперь переходим в папку с Nginx, подставляем все полученные опции, опцию —add-dynamic-module для PageSpeed, OpenSSL и пробуем собрать:

cd nginx-1.13.3
# ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --with-ld-opt= --with-openssl=$HOME/openssl-1.0.2k --add-dynamic-module=$HOME/ngx_pagespeed-1.12.34.2-stable ${PS_NGX_EXTRA_FLAGS}
# make

Если все было сделано правильно, то на выходе вы получите модуль ngx_pagespeed.so в папке obj, его нужно скопировать в папку /etc/nginx/modules:

cp ngx_pagespeed.so /etc/nginx/modules/ngx_pagespeed.so

Создаем папку для кэша:

mkdir -p /var/ngx_pagespeed_cache
# chown -R nginx:nginx /var/ngx_pagespeed_cache

Теперь добавьте такую строчку для включения модуля в /etc/nginx/nginx.conf:

load_module "modules/ngx_pagespeed.so";

Затем, в секцию сервер достаточно добавить:

pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }

Теперь вам достаточно перезапустить nginx чтобы изменения вступили в силу:

nginx -t
# systemctl restart nginx

Выводы

Настройка Nginx завершена, возможно, остались еще и другие оптимизации, которые помогут ускорить Nginx, но они не войдут в эту статью. А какие оптимизации используете вы? Напишите обязательно в комментариях! Надеюсь, эта информация была полезной вам.

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

Загрузка…

Не стартует Nginx на Ubuntu, в чем может быть дело? — Хабр Q&A

Не стартует nginx на ubuntu 15.04 (x64), уже всю голову сломал вот лог:

nikita@nikita-roshchenko:~$ sudo /etc/init.d/nginx start
[....] Starting nginx (via systemctl): nginx.serviceJob for nginx.service failed. See "systemctl status nginx.service" and "journalctl -xe" for details.
 failed!
nikita@nikita-roshchenko:~$ systemctl status nginx.service
● nginx.service - LSB: Stop/start nginx
   Loaded: loaded (/etc/init.d/nginx)
   Active: failed (Result: exit-code) since Срд 2015-07-15 13:05:55 EEST; 49s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 5271 ExecStart=/etc/init.d/nginx start (code=exited, status=1/FAILURE)
nikita@nikita-roshchenko:~$ sudo journalctl -xe
Июл 15 13:46:37 nikita-roshchenko dbus[687]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Июл 15 13:46:37 nikita-roshchenko systemd[1]: Started Network Manager Script Dispatcher Service.
-- Subject: Запуск юнита NetworkManager-dispatcher.service завершен
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Процесс запуска юнита NetworkManager-dispatcher.service был завершен.
-- 
-- Результат: done.
Июл 15 13:46:37 nikita-roshchenko nm-dispatcher[6287]: Dispatching action 'dhcp4-change' for wlan0
Июл 15 13:46:37 nikita-roshchenko dhclient[1271]: bound to 172.16.50.110 -- renewal in 860 seconds.
Июл 15 13:47:49 nikita-roshchenko avahi-daemon[637]: server.c: Packet too short or invalid while reading response record. (Maybe 
Июл 15 13:48:01 nikita-roshchenko wpa_supplicant[848]: wlan0: WPA: Group rekeying completed with 24:a0:74:78:b0:83 [GTK=TKIP]
Июл 15 13:56:33 nikita-roshchenko sudo[6330]: nikita : TTY=pts/0 ; PWD=/home/nikita ; USER=root ; COMMAND=/bin/journalctl -xe
Июл 15 13:56:33 nikita-roshchenko sudo[6330]: pam_unix(sudo:session): session opened for user root by (uid=0)

Удаление и заново установка не помогают, гугл тоже молчит.

Настройка хостов Nginx в Ubuntu

Всем привет! Данное руководство покажет, как выполняется настройка хостов Nginx на сервере Ubuntu 16.04.

Виртуальные хосты в Nginx также называются блоками server. Эти блоки используются для обслуживания нескольких индивидуальных доменов на одном сервере.

Требования

  • Не-root пользователь с доступом sudo
  • Предварительно установленный веб-сервер Nginx. Инструкции по установке стека LEMP в Ubuntu можно найти здесь.

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

Если у вас нет доменных имён, которые можно использовать для тестирования настроек, укажите фиктивные домены. В руководстве есть специальный раздел, объясняющий, как протестировать сайты при помощи локальной машины.

1. Каталоги Document Root

По умолчанию в Ubuntu 16.04 включен один стандартный виртуальный хост Nginx, который обслуживает документы из каталога /var/www/html.

Для обслуживания нескольких сайтов нужно создать дополнительные каталоги. Каталог /var/www/html будет использоваться в качестве каталога по умолчанию, который будет обслуживаться, если запрос клиента не соответствует ни одному из других сайтов.

Создайте структуру каталогов в /var/www для каждого отдельного сайта. Весть текущий контент нужно поместить в каталог html. Используйте следующую команду; флаг –p создаст все необходимые родительские каталоги.

sudo mkdir -p /var/www/example.com/html
sudo mkdir -p /var/www/test.com/html

Создав все необходимые каталоги, передайте права на них текущему пользователю с доступом к sudo.

Примечание: В зависимости от требований сервера вам может потребоваться повторно настроить права доступа или права собственности на папки, чтобы разрешить доступ к пользователю www-data. В этом, как правило, часто нуждаются динамические сайты. Конечно, привилегии доступа полностью зависят от конфигурации сервера.

Используйте переменную окружения $USER, чтобы задать текущего пользователя. Это позволит создавать файлы в этих каталогах.

sudo chown -R $USER:$USER /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/test.com/html

Теперь права на эти каталоги установлены верно, если ранее значение umask не было изменено. Это можно проверить при помощи команды:

sudo chmod -R 755 /var/www

2. Создание страниц для сайтов

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

Создайте страницу index.html для первого сайта.

nano /var/www/example.com/html/index.html

В этот файл вставьте следующий код; эта простая базовая страница сообщит, какой из двух сайтов открыт.

<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h2>Success!  The example.com server block is working!</h2>
</body>
</html>

Сохраните и закройте файл.

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

cp /var/www/example.com/html/index.html /var/www/test.com/html/

Откройте этот файл в текстовом редакторе:

nano /var/www/test.com/html/index.html

Откорректируйте данные, указав информацию о втором сайте:

<html>
<head>
<title>Welcome to Test.com!</title>
</head>
<body>
<h2>Success!  The test.com server block is working!</h2>
</body>
</html>

Сохраните и закройте файл.
Теперь стандартные страницы сайтов готовы.

3. Создание виртуальных хостов

Итак, теперь файловая структура и страницы, обслуживающие контент, готовы к работе. Приступайте к созданию блоков server для Nginx.

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

Блок server для первого сайта

Итак, скопируйте стандартный файл, чтобы создать первый блок server.

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com

Откройте новый файл в текстовом редакторе:

sudo nano /etc/nginx/sites-available/example.com

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

server {
  listen 80 default_server;
  listen [::]:80 default_server;
  root /var/www/html;
  index index.html index.htm index.nginx-debian.html;
  server_name _;
  location / {
    try_files $uri $uri/ =404;
  }
}

Сначала нужно разобраться с директивами listen. Спецификация default_server может быть действительна только для одного виртуального хоста. Она указывает, какой из виртуальных хостов должен обслуживать запрос, если запрашиваемый server_name не совпадает ни с одним из существующих виртуальных хостов.

Добавьте опцию default_server в директиву listen одного из своих сайтов. Также можно оставить эту опцию в файле стандартного виртуального хоста, который будет обслуживать каталог /var/www/html, если запрашиваемый хост не может быть найден.

В данном руководстве стандартный виртуальный хост будет обслуживать несовпадающие запросы, потому директиву default_server нужно удалить из него и добавить в файл другого хоста.

server {
  listen 80;
  listen [::]:80;
  . . .
}

Примечание: Чтобы убедиться, что опция default_server включена только в одном файле виртуального хоста, введите:

grep -R default_server /etc/nginx/sites-enabled/

Если такие записи в раскомментированном виде находятся в нескольких файлах (указывается в последнем столбце), веб-сервер пожалуется на ошибку.

Далее нужно указать каталог document root, отредактировав директиву root.

server {
  listen 80;
  listen [::]:80;
  root /var/www/example.com/html;
}

Затем нужно отредактировать server_name, указав доменное имя (в данном случае – домен первого сайта). Также можно добавить несколько алиасов (например, www.example.com). В результате получится:

server {
  listen 80;
  listen [::]:80;
  root /var/www/example.com/html;
  index index.html index.htm index.nginx-debian.html;
  server_name example.com www.example.com;
  location / {
    try_files $uri $uri/ =404;
  }
}

Базовая настройка виртуального хоста завершена.

Блок server для второго сайта

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

sudo cp /etc/nginx/sites-available/example.com /etc/nginx/sites-available/test.com

Откройте новый файл с привилегиями root:

sudo nano /etc/nginx/sites-available/test.com

Обратите внимание на директиву listen. Если опция default_server была включена в предыдущий файл, удалите её из этого файла. Также нужно откорректировать значение директивы root (укажите document root второго сайта) и server_name (укажите доменное имя и все алиасы).

В результате файл будет выглядеть так:

server {
  listen 80;
  listen [::]:80;
  root /var/www/test.com/html;
  index index.html index.htm index.nginx-debian.html;
  server_name test.com www.test.com;
  location / {
    try_files $uri $uri/ =404;
  }
}

Сохраните и закройте файл.

4. Включение виртуальных хостов

Теперь виртуальные хосты готовы, но их нужно активировать.

Для этого нужно создать символьные ссылки из этих файлов в каталог sites-enabled, который читается веб-сервером Nginx во время запуска.

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/

Теперь эти файлы в каталоге sites-enabled. На данный момент у вас есть три виртуальных блока, которые смогут отвечать на запросы согласно директивам listen и server_name.

  • example.com: файл для сайта example.com и его алиасов.
  • test.com: файл для сайта test.com и его алиасов.
  • default: стандартный файл, который будет отвечать на запросы, не соответствующие ни первому, ни второму сайту.

Чтобы избежать потенциальных проблем с памятью, которые могут возникнуть из-за дополнительных имён сервера, отредактируйте файл /etc/nginx/nginx.conf:

sudo nano /etc/nginx/nginx.conf

Найдите директиву server_names_hash_bucket_size и раскомментируйте её:

http {
  . . .
  server_names_hash_bucket_size 64;
  . . .
}

Сохраните и закройте файл.

Проверьте синтаксис на наличие ошибок:

sudo nginx -t

Если ошибок нет, перезапустите Nginx, чтобы обновить настройки:

sudo systemctl restart nginx

Теперь Nginx обслуживает два домена.

5. Настройка локальных хостов (опционально)

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

Это не позволит другим посетителям просматривать сайт, но даст вам возможность проверить работу и настройки каждого сайта. Этот метод работает путем перехвата запросов, которые, как правило, поступают в DNS для разрешения доменных имен. Вместо этого можно указать IP-адреса, которые будут использоваться локальным компьютером, при поступлении запросов к доменным именам.

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

В системах Mac или Linux войдите как root-пользователь (su) и откройте файл hosts:

sudo nano /etc/hosts

При использовании Windows обратитесь к сайту Microsoft.

На данном этапе понадобится внешний IP-адрес и домены, которые нужно направить на сервер. Допустим, внешний IP-адрес сервера 111.111.111.111; в таком случае строки будут выглядеть так:

127.0.0.1   localhost
. . .
111.111.111.111 example.com www.example.com
111.111.111.111 test.com www.test.com

Это будет перехватывать запросы к example.com и test.com и передавать их на сервер.

Сохраните и закройте файл.

6. Тестирование

Теперь нужно протестировать работу виртуальных хостов. Для этого посетите домены в браузере:

http://example.com

На экране появится сообщение:

Success! The example.com server block is working!

Посетите второй домен:

http://test.com

На экране должно появиться сообщение:

Success! The test.com server block is working!

Если веб-сервер ответил на запросы, значит, всё работает должным образом и настройка хостов в nginx завершена.

Если файл hosts на локальном компьютере был отредактирован, на этом этапе нужно удалить добавленные в него строки.

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

1359

Смотрите также:

Понравилась статья? Поделитесь ей с друзьями!

  • Веб разработка

Как установить сервер Nginx на Ubuntu 18.04 🖥️

Nginx – простой и надежный веб-сервер, на котором можно размещать сложные интернет-проекты с высоким трафиком, а также использовать его в качестве обратного прокси.

Как производится настройка Nginx подробно разберем на примере популярной ОС семейства Linux — Ubuntu версии 18.04. Также опишем особенности предыдущей LTS (Long Term Support) версии Ubuntu 16.04.

Что нужно для установки

Для инсталляции на Ubuntu 18.04 понадобится: установленная операционная система, имеющая статический IP-адрес, с доступом в интернет. Также желательно, чтобы файрвол UFW был включен.

Подготовка

Перед началом установки Nginx заходим в ОС под пользователем root, и создаем новый аккаунт с расширенными привилегиями sudo.

Вводим следующую команду*:

adduser host

* Здесь «host» – имя пользователя, под которым будем работать.

Далее вбиваем свою информацию об аккаунте или принимаем настройки по умолчанию, нажав «Enter».

Настройка доступа в учетную запись созданного пользователя зависит от того, какая используется root-аутентификация. Это может быть просто пароль, либо же SSH-ключи.

Если вход выполняется под паролем, то подключиться к новому пользователю можно по SSH*:

ssh [email protected]

*IP сервера в примере (194.61.0.6) следует заменить на актуальный.

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

  1. Открыть терминал и ввести команду:
rsync --archive --chown= host: host ~/.ssh /home/ host
  1. Добавить созданного пользователя в группу sudo:
usermod -aG sudo  host
  1. Авторизоваться под новым пользователем.

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

Инсталляцию будем выполнять прямо из репозитория Ubuntu, посредством пакетного менеджера apt:

$ sudo apt update
$ sudo apt install nginx

По завершению исполнения команд, обновление и установка Nginx на сервере будет окончена.

Настройка UFW

Перед предоставлением доступа к сервису, следует настроить файрвол.

Для просмотра приложений, с которыми будет взаимодействовать UFW, вводим следующую команду:

$ sudo ufw app list

Будет выведена следующая информация:

Это означает, что UFW может работать с тремя вариантами протоколов веб-сервера:

  1. Full – открыты два порта (80 и 443).
  2. HTTP – открыт только 80 порт.
  3. HTTPS – открывается только 443 порт.

Пока не настроен SSL протокол, открываем 80 порт. Вводим команды:

$ sudo ufw allow 'Nginx HTTP'

Чтобы не потерять доступ по SSH, вводим команду:

$ sudo ufw allow ssh
$ sudo ufw enable

Будет выведено предупреждение:

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

Нужно согласиться (нажать «y»).

Проверяем:

$ sudo ufw status

На экране будет выведено:

Status: active

To                               Action             From
--                               ------             ----
Nginx HTTP                       ALLOW           Anywhere
22/tcp                           ALLOW           Anywhere
Nginx HTTP (v6)                  ALLOW           Anywhere (v6)
22/tcp (v6)                      ALLOW           Anywhere (v6)

HTTP протокол открыт.

Тестирование Nginx

После завершения инсталляции веб-сервера, Ubuntu запустит его автоматически.

Чтобы проверить, что он работает, нужно ввести команду:

$ systemctl status nginx

В случае успешного запуска службы, на экране должно отобразиться:

Для того, чтобы полностью в этом убедиться, выполним запрос начальной страницы Nginx. Нужно ввести доменное имя или IP-адрес сервера в строке браузера.

Если IP-адрес неизвестен, существует несколько способов его выяснить.

В терминале набираем команду:

$ ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Отобразится несколько IP-адресов. По очереди их необходимо будет вставить в браузер, пока не отобразится страница приветствия Nginx.

Другой метод проверки видимости сервера в интернете:

$ curl -4 icanhazip.com

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

Она будет выглядеть вот так:

Команды управления Nginx-сервером

Чтобы остановить web-сервер, вводим:

$ sudo systemctl stop nginx

Для старта используем команду:

$ sudo systemctl start nginx

Для перезапуска Nginx после остановки, вводим:

$ sudo systemctl restart nginx

Во время загрузки Ubuntu, сервер Nginx стартует автоматически по умолчанию. Отключить запуск по умолчанию можно следующим образом:

$ sudo systemctl disable nginx

Чтобы при внесении изменений в конфигурации веб-сервера, его можно было перезагрузить, не теряя соединений. Для этого вводим команду:

$ sudo systemctl reload nginx

Для возобновления запуска Nginx при старте вводим:

$ sudo systemctl enable nginx

Настройка виртуального хоста

На Nginx можно использовать серверные блоки для обслуживания нескольких доменов. Изначально у этого веб-сервера включен один виртуальный хост. Его файлы находятся в каталоге /var/www/html. Однако, это неудобно при размещении нескольких сайтов.

Чтобы это исправить в директории /var/www/ создадим каталог. В данном примере будем использовать условный домен «exemple.com», который нужно будет заменить своим доменом.

Начнем с создания каталога:

$ sudo mkdir -p /var/www/example.com/html

При помощи переменной $USER определим права каталога:

$ sudo chown -R $USER:$USER /var/www/example.com/html

Далее создадим пример страницы index.html:

$ snano /var/www/example.com/html/index.html

Вставим следующий код в файл:

<html>
    <head>
        <title>Welcome to Example.com!</title>
    </head>
    <body>
        <h2>Success!  The example.com server block is working!</h2>
    </body>
</html>

Затем создадим каталог – «sites-available» (директория, в которой хранятся серверные блоки):

$ sudo nano /etc/nginx/sites-available/example.com

Впишем в него код, указав свой каталог и домен:

server {
listen 80;
listen [::]:80;

root /var/www/example.com/html;
index index.html index.htm index.nginx-debian.html;

server_name example.com www.example.com;

location / {
try_files $uri $uri/ =404;
}
}

После этого создадим ссылку в каталоге «sites-enabled» (директория, в которой находятся, все настройки хоста), чтобы файл стал доступен:

$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Теперь настроены, и задействованы два виртуальных хоста. По умолчанию запросы, поступившие на 80 порт будут обрабатываться первым хостом, если они не соответствуют «www.example.com» или «example.com».

Для предотвращения различных сбоев с памятью, из-за дополнительных серверных имен, отредактируем файл nginx.conf.

В открывшемся файле ищем строку:

$ sudo nano /etc/nginx/nginx.conf

Убираем символ «#», сохраняем и закрываем.

Теперь выполним проверку файлов Nginx на отсутствие синтаксических ошибок:

$ sudo nginx -t

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

$ sudo systemctl restart nginx

Для проверки корректной работы домена введем в браузере ссылку «http://example.com». Если все настройки выполнены правильно, мы увидим следующую надпись:

Ошибки, которые будут возникать в процессе работы сервера Nginx, можно посмотреть в файле error.log.

/var/log/nginx/error.log

Все запросы, поступающие к вашему web-серверу, будут записываться в файле access.log.

/var/log/nginx/access.log

linux — перезапустите Nginx в Ubuntu

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

.

Как запустить, остановить и перезапустить веб-сервер Nginx

Nginx — это мощное серверное приложение, которое направляет сетевой трафик. Он часто используется как обратный прокси-сервер, но также может быть настроен как обычный веб-сервер.

Одна из наиболее распространенных операций, с которыми вы столкнетесь, — это запуск, остановка и перезапуск веб-сервера Nginx.

Из этого руководства вы узнаете, как запускать, останавливать и перезапускать службу Nginx.

  • Система с установленным и настроенным Nginx
  • Доступ к окну терминала или командной строке
  • Учетная запись пользователя с sudo или привилегиями root
  • Существующее SSH-соединение с удаленной системой (если вы работаете удаленно)

Запуск, остановка и перезапуск Nginx с помощью systemctl

Как просмотреть состояние вашего сервера Nginx

Nginx работает как служба на вашем сервере.Это означает, что он должен активно работать в фоновом режиме, даже если вы ничего не видите на экране. Вы можете отобразить статус службы Nginx, введя следующую команду в окне терминала:

  sudo systemctl статус nginx  

Система перейдет в статусный режим, отображающий много информации о сервисе Nginx.

      • Если служба работает (активна), вы увидите зеленый статус активен (работает) в третьей строке.
      • Если Nginx не запущен, он будет отображаться как неактивно стандартным белым цветом.
      • Если что-то пошло не так и Nginx не смог загрузиться, вы увидите красный статус failed с некоторой информацией о сбое.

Нажмите q , чтобы повторно активировать приглашение bash.

SystemD — это диспетчер служб по умолчанию в современных версиях дистрибутивов Linux (Ubuntu 20.04 / 18.16.04.04, CentOS 7/7 и Debian 9/10 ) . Диспетчер SystemD работает с помощью команды systemctl .

Команда systemctl является базовой командой Linux. Это означает, что его можно использовать для любой службы Linux.

systemctl можно использовать для запуска и остановки службы Nginx.

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

  sudo systemctl stop nginx  

Чтобы запустить Nginx, выполните команду systemctl с опцией start :

  sudo systemctl start nginx  

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

Используйте команду systemctl Linux, чтобы перезагрузить службу Nginx. Выполните следующую команду:

  sudo systemctl перезагрузить nginx  

Примечание : Nginx нельзя перезагрузить, если служба Nginx не активна.

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

Введите следующую команду:

  sudo systemctl перезапуск nginx  

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

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

Настроить Nginx для запуска при загрузке

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

  sudo systemctl включить nginx  

Используйте параметр disable с командой systemctl для отключения Nginx:

  sudo systemctl отключить nginx  

Запуск, остановка и перезагрузка Nginx с помощью команды Nginx

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

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

  Судо /etc/init.d/nginx start  

В случае успешного выполнения на выходе терминала будет отображаться следующее:

   Выход 
[ok] Запуск nginx (через systemctl): nginx.service.  

Для принудительного закрытия и перезапуска Nginx и связанных процессов:

  sudo /etc/init.d/nginx перезапуск  

В качестве альтернативы используйте команду nginx -s :

  sudo nginx -s перезапуск  

Чтобы отключить или остановить службу Nginx, введите следующее:

  sudo / etc / init.д / нгинкс стоп   

В качестве альтернативы используйте:

  sudo nginx -s stop  

Для корректной остановки и перезапуска Nginx и связанных процессов используйте команду:

  sudo /etc/init.d/nginx перезагрузить  

В качестве альтернативы вы можете использовать команду nginx -s для передачи инструкций непосредственно в Nginx:

  sudo nginx -s перезагрузить  

Принудительно закройте службу Nginx с помощью инструкции quit с помощью команды nginx -s :

  sudo nginx -s выйти  

В этой статье описаны несколько методов запуска, остановки и перезапуска Nginx на вашем сервере.Используйте эти команды для наиболее распространенных операций при управлении веб-сервером Nginx.

.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *