Ubuntu не находит nginx

Обновлено: 03.07.2024

Конечно, сначала может быть сложно запомнить все команды и рекомендации по управлению сервером 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/.

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

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

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

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

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

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

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

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

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

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

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

sudo nano /etc/nginx/nginx.conf

Это увеличит размер хэш-таблиц имен серверов 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

Контент

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

  • /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, ознакомьтесь со следующими руководствами:

Поставил на ноут ubuntu 15.04 минут 40 назад.
Начал ставить всё нужное мне, ставлю nginx и получаю ошибку:

4c62b6de388c426398d2d625475d693c.jpg

Такая же проблема и при установке mariadb-server.

Кстати, удалить nginx так же не получается:

a73842058a5e42d3ab961f1e7f411a7c.jpg

  • Вопрос задан более трёх лет назад
  • 661 просмотр

POS_troi

Hatsune-Miku

Так же сводится к тому что dpkg: ошибка при обработке пакета nginx (--configure):
проблемы зависимостей — оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
nginx-core
nginx
E: Sub-process /usr/bin/dpkg returned an error code (1)

Hatsune-Miku

> зачем ставить 15.04, если её поддержка полностью прекратится через полтора-два месяца?

Нет возможности скачать 15,10, но был образ 15,04

> не подключали ли вы ещё какие-то кривые сторонние репозитории

OnYourLips

> Ставьте 15.10, как последнюю актуальную версию.
Последняя актуальная версия 14.04.
15.10 - это аналог insider программы у microsoft. Чтобы адаптировать свой софт под ОС, но не для обычного использования OnYourLips: Опять вы:) 14.04 это для любителей ретро. У меня и 16.04 отлично работает уже месяц как, а вы о 14.04 вспоминаете. Эх, ностальгия, было дело 2 года назад, стояла.
15.10 отлично работает, хотя вы, наверное, даже не пробовали - всем с новым железом советуете 14.04, а потом то сетевая не работает, то ещё что-то.

Miku Hatsune: Как это нет возможности? Поставить софт с интернета возможность есть, а скачать образ нет?
Для начала, судя по вопросу, рекомендую сделать:
sudo apt-get update
sudo apt-get upgrade

То есть обновиться хотя бы в рамках текущего дистрибутива. А потом уже:
sudo apt-get -f install
sudo apt-get install nginx

Ну и вывод в случае ошибок в студию

OnYourLips

Назар Мокринский: ОС нужна, чтобы в ней работать, а не постоянно обслуживать.
Вы же предлагаетеп ереустанавливать ее два раза в год (обновление Ubuntu всегда проблемное, и постоянно что-то отваливается).

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

> всем с новым железом советуете 14.04, а потом то сетевая не работает, то ещё что-то.
Я негативно отношусь к установке линуксов на ноутбуки. Но если человек это делает, то и свободное время у него найдется на обслуживание.

OnYourLips: Я не переустанавливаю уже три года, живу вообще на ночных сборках. Что я делаю не так?

Обновление происходит нормально, если только вы не включали сомнительные репозитории от левых версий, но тогда у вас и LTS-LTS обновление гладко не пройдёт.

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

Не вижу отличия работы ноутбука на настольном ПК и ноутбуке, вот честно.

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

OnYourLips

Назар Мокринский:
> Обновление происходит нормально, если только вы не включали сомнительные репозитории от левых версий

Вы, смотрю, очень большой оптимист. Был у меня нетбук на линуксе, и на нем постоянно что-то отваливалось при обновлении (то панели в gnome, то переключение клавиатуры, то драйвера на видео), при этом на ресурсах сообщества я видел, что я не одинок. И на нем не было левых репозиториев. Экспериментировать с этим закончил несколько лет назад

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

Ну у меня как раз около 20 виртуалок (и dev, и prod). Ноутбук, как я уже упоминал, на линуксе у меня работать не будет. У меня винда, причем обновленная на новую ОС два раза, пережившая два ноутбука и до сих пор отлично работающая.

> Не вижу отличия работы ноутбука на настольном ПК и ноутбуке, вот честно.
Меньше проблем с железом. Хотя я и против настольного использования.

> Поскольку вы субъективно предубеждены в обратном, не вижу смысла оффтопить здесь комментарии.
Но может тогда не надо советовать версию, которая через 8 месяцев будет мертва?

OnYourLips: > то панели в gnome
Мда, это было ОЧЕНЬ давно я смотрю.
> У меня винда, причем обновленная на новую ОС два раза, пережившая два ноутбука и до сих пор отлично работающая.
У меня Ubuntu, обновленная множество раз ещё с 12.10 точно, может ещё более ранней версии (то есть это у меня уже седьмое обновление было на 16.04 месяц назад), пережила ноут, настольный ПК и сейчас второй ноутбук, в течении месяца перейдёт на третий ноутбук, ну и жила на HDD, потом SSD, сейчас на BTRFS RAID из пары SSD, не считая нескольких переходов на разные DE: Unity->GNOME->Unity->Cinnamon->Unity, не считая попыток использовать XFCE и Pantheon Desktop. Вполне живая, и мусора в системе, уверен, гораздо меньше чем у вас в Windows.

> Но может тогда не надо советовать версию, которая через 8 месяцев будет мертва?
Так через 5 месяцев уже будет новая версия, не вижу проблемы. У вас браузер вообще каждые 6 недель минимум обновляется, и ничего, не жалуетесь, полагаю.

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

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

Введение

Перед тем, как начать работу с руководством, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo и у вас нет Apache или какой-либо другой службы, работающей на порте 80 или 443.

Установить Nginx

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

После завершения установки проверьте состояние службы Nginx, набрав:

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

Чтобы проверить тип версии Nginx:

Настройте брандмауэр

Вы можете сделать это, включив профиль Nginx Full, который включает правила для обоих портов:

Чтобы проверить тип статуса брандмауэра:

Результат будет выглядеть примерно так:

Проверить установку



Установите Nginx из репозитория Nginx PPA

Пакеты Nginx из репозиториев Ubuntu часто устарели. Чтобы установить последнюю версию Nginx, используйте официальный репозиторий Nginx PPA.

Выполните следующие действия, чтобы установить последнюю версию Nginx в Ubuntu 16.04:

Сначала установите software-properties-common пакет:

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

Обновите список пакетов и установите Nginx:

После завершения установки проверьте версию Nginx с помощью:

Результат будет выглядеть примерно так:

Управляйте службой Nginx с помощью systemctl

Вы можете управлять сервисом Nginx так же, как и любым другим модулем systemd.

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

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

После внесения некоторых изменений в конфигурацию перезагрузите службу Nginx:

Отключите службу Nginx для запуска при загрузке:

Повторно включите службу Nginx для повторного запуска при загрузке:

Структура файла конфигурации Nginx и рекомендации

Вывод

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

В этом инструкции мы установим NGINX в качестве автономного веб-сервера на Ubuntu 20.04.

Установка NGINX на Ubuntu 20.04

Прежде чем приступить к установке NGINX. Сначала запустите команду sudo apt-get update, чтобы получить информацию о новых и обновленных пакетах Ubuntu.

Nginx доступен в репозитории пакетов Ubuntu. Поэтому Nginx очень лего установить с помощью следующей команды:

Проверьте состояние службы NGINX

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

Проверьте состояние службы NGINX

Проверьте состояние службы NGINX

Вывод приведенной выше команды подтверждает, что NGINX активен и работает.

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

Провера версии Nginx на Ubuntu

Провера версии Nginx на Ubuntu

Проверьте версию Nginx на Ubuntu

Эти данные показывают, что установлен nginx версии 1.18.0. На момент написания статьи это последняя версия для Ubuntu 20.04.

Тестирование веб-сервера NGINX

Веб-страница по умолчанию NGINX

Веб-страница по умолчанию NGINX

Теперь требуется, убедится, что соответствующий порт открыт в вашем брандмауэре. Например, если вы включили Брандмауэр UFW на своем сервере Ubuntu. Вы должны попытаться обновить правила брандмауэра. Для того чтобы разрешить NGINX общаться по порту 80 и/или 443 следующим образом.

Команда разрешает NGINX работать на порту 80:

Команда разрешает NGINX работать на порту 443:

Настройка серверных блоков NGINX

Если вы хотите разместить несколько веб-сайтов на одном веб-сервере NGINX, то вам нужно будет настроить серверные блоки. Серверные блоки также называются виртуальными хостами (в основном в Apache).

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

$ sudo cat /etc/nginx/sites-available/default | more

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

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

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

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

Создать корень сайта

Создание индексного файла

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

<!DOCTYPE html>
<html>
<head>
<title>Welcome to Domain1!</title>
<style>
body width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
>
</style>
</head>
<body>
<h1>Welcome to Domain1!</h1>
<p>If you see this page, the Domain1 website is working!</p>
</body>
</html>

Сохраните изменения и закройте текстовый редактор.

Создание серверного блока

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

$ sudo nano /etc/nginx/sites-available/domain1

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

Включить серверный блок

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

$ ln -s /etc/nginx/sites-available/domain1 /etc/nginx/sites-enabled

Проверьте свою конфигурацию

$ sudo nginx-t

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

nginx: configuration file /etc/nginx/nginx.conf test is successful

Вы можете запустить sudo service nginx reload, чтобы перезагрузить файлы конфигов.

Протестируйте свой новый сайт

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

Хостинг дополнительного сайта с использованием серверного блока

Хостинг дополнительного сайта с использованием серверного блока

Основные команды для управления NGINX сервером

Вот основные команды Nginx сервера для управления.

Команда restart остановит службу, а затем запустит ее снова.

$ sudo systemctl restart nginx

Команда reload сообщает NGINX перезагрузить конфигурационные файлы, но без остановки службы.

Команда stop остановит службу NGINX.

Включение Nginx при загрузке системы.

Примечание: служба Nginx включена по умолчанию. И автоматически стартует при загрузке сервера.

Основные файлы конфигурации и журналов NGINX

/etc/nginx этот файл содержит все конфигурационные файлы NGINX.

/etc/nginx/sites-available этот файл содержит дынные серверных блоков, в которых хранят сведения о конфигурации. Требуется это для обслуживания одного или нескольких веб-сайтов.

/etc/nginx/sites-enabled данный файл содержит конфигурации одного или нескольких включенных веб-сайтов.

/etc/nginx/nginx. conf это основной конфигурационный файл, который считывает директивы конфигурации в других файлах.

/var / log/nginx / access. log этот файл хранит данные о всех посещениях вашего сайта

/var/log/nginx/error. log этот файл предназначен для хранения ошибок NGINX

Заключение

Следуя этой инструкции, вы можете запустить NGINX с одним или несколькими веб-сайтами на вашем сервере Ubuntu 20.04. Но если вдруг у вас возникли какие-либо проблемы, то пожалуйста, не стесняйтесь сообщить мне об этом в разделе комментариев ниже. Я сделаю все возможное, чтобы помочь вам.

Читайте также: