Как проверить установлен ли nginx
Перейти к содержимому

Как проверить установлен ли nginx

Устранение неполадок установки и настройки Nginx

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

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

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

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

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

Установка Nginx

Обновите индекс пакетов, а затем установите Nginx:

sudo apt-get update
sudo apt-get install nginx

Проверка состояния Nginx

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

sudo systemctl status nginx

Автозагрузка Nginx

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

sudo systemctl disable nginx

Чтобы снова добавить Nginx в автозагрузку, введите:

sudo systemctl enable nginx

Управление сервисом Nginx

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

sudo systemctl stop nginx

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

sudo systemctl start nginx

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

sudo systemctl restart nginx

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

sudo systemctl reload nginx

Создание корневого каталога для статического контента

При создании сайтов на Nginx разработчики часто используют виртуальные хосты (или блоки server) – это хосты, которые обслуживают отдельные сайты или домены. Для этого нужно создать document root, каталог верхнего уровня, который Nginx проверяет при обслуживании контента.

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

sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com/html
find /var/www -type d -exec chmod 775 <> \;

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

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

Создание корневого каталога для динамических файлов

Если ваш сайт использует динамические модули типа PHP-FPM, вам может понадобиться передать права на некоторые файлы группе www-data. Если группе нужно право на запись в каталоге, передайте группе права собственности на каталог.

Предложенные ниже команды создают новый document root, передают его группе www-data и изменяют права на каждый подкаталог в /var/www.

sudo mkdir -p /var/www/example.com/html
sudo chown -R www-data:www-data /var/www/example.com
sudo find /var/www -type d -exec chmod 775 <> \;

Включение и отключение конфигурационных файлов

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

Для этого введите комнаду:

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

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

Устранение неполадок с хэш-таблицей

Nginx использует хэш-таблицы, чтобы быстро обрабатывать статические данные (имена серверов, MIME-типы). Если вы добавили несколько имен серверов, есть вероятность, что заданного размера хэша имени сервера будет не хватать, и при внесении изменений вы увидите ошибку server_names_hash_bucket_size. Ее можно устранить, отредактировав одно значение в файле /etc/nginx/nginx.conf.

Откройте этот файл:

sudo nano /etc/nginx/nginx.conf

Найдите в файле директиву server_names_hash_bucket_size. Удалите символ #, чтобы раскомментировать строку, и увеличьте значение директивы:

http <
. . .
server_names_hash_bucket_size 64 ;
. . .
>

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

Тестирование конфигурации

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

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

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

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

sudo systemctl restart nginx

Важные файлы и каталоги Nginx

Контент

Каталог /var/www/html хранит весь контент сайта (это корневой каталог сайта). Вы можете изменить стандартные настройки Nginx и указать другие каталоги в var/www.

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

  • /etc/nginx/: конфигурационный каталог Nginx (здесь хранятся все конфигурационные файлы веб-сервера).
  • /etc/nginx/nginx.conf: главный конфигурационный файл веб-сервера, в котором находятся все глобальные параметры.
  • /etc/nginx/sites-available/default: виртуальный хост Nginx по умолчанию. Другие виртуальные хосты также должны храниться в каталоге sites-available (но они не будут работать без симлинка в sites-enabled).
  • /etc/nginx/sites-enabled/: здесь хранятся файлы включенных виртуальных хостов. При запуске или перезагрузке Nginx читает конфигурационные файлы и ссылки в этом каталоге, чтобы собрать полную конфигурацию.
  • /var/log/nginx/access.log: это лог, который регистрирует все запросы Nginx (если в конфигурации веб-сервера не сказано другого).
  • /var/log/nginx/error.log: это лог ошибок.

Чтобы получить доступ к логам systemd процесса Nginx, запустите эту команду:

sudo journalctl -u nginx

Заключение

Данный мануал перечислил общие процедуры по поддержке сервера Nginx. Чтобы узнать больше о работе с Nginx, ознакомьтесь со следующими руководствами:

Как настроить Nginx на Ubuntu 20.04

Nginx является одним из самых распространённых инструментов создания веб-серверов, который в настоящее время активно используется для работы многими сайтами. Ниже, о том, как настроить Nginx на сервере Ubuntu 20.04.

Установка Nginx

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

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

На этом всё, что касается установки Nginx. Переходим к его настройке.

Настройка веб-сервера Nginx

При настройке веб-сервера Nginx, первым делом следует уделить внимание брандмауэру, используемому операционной системой вашего сервера. Для защиты подключений к вашей системе, с точки зрения простоты использования и надёжности, наиболее оптимально подойдёт такой инструмент как Uncomplicated Firewall (UFW). Чтобы увидеть профили приложений, о которых знает UFW, используйте инструкцию:

Список этих приложений выглядит так:

sudo ufw app list при настройке Nginx на Ubuntu 20.04

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

и проверьте статус UFW:

Должно быть примерно так:

sudo ufw status при настройке Nginx на Ubuntu 20.04

Поскольку веб-сервер устанавливается как служба, проверить статус Nginx можно командой:

systemctl status nginx при настройке Nginx на Ubuntu 20.04

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

Начальная страница Nginx

Важные директории и файлы настроек Nginx

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

How to verify if nginx is running or not?

Following jsinh’s blog, I installed it using:

I was trying to understand whether it is working or not by using:

However, the output is always the same:

Nginx status

How to verify if nginx is running or not?

user avatar

11 Answers 11

Looking at the requirement you have, the below command shall help:

user avatar

This is probably system-dependent, but this is the simplest way I’ve found.

That’s the best solution for scripting.

You could use lsof to see what application is listening on port 80:

If you are on mac machine and had installed nginx using

is the command for you. This will return a list of services installed via brew and their corresponding status.

enter image description here

user avatar

The modern ( systemctl ) way of doing it:

You can use the exit value in your shell scripts as follows:

user avatar

service nginx status will work on a non-systemd based version.

On systemd based versions such as Ubuntu Linux 16.04 LTS and above, make use of the command below;

user avatar

For Mac users

I found out one more way: You can check if /usr/local/var/run/nginx.pid exists. If it is — nginx is running. Useful way for scripting.

None of the above answers worked for me so let me share my experience. I am running nginx in a docker container that has a port mapping (hostPort:containerPort) — 80:80 The above answers are giving me strange console output. Only the good old ‘nmap’ is working flawlessly even catching the nginx version. The command working for me is:

We are doing nmap using the -ServiceVersion switch on the localhost and port: 80. It works great for me.

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

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