Nginx Ubuntu не запускается

Обновлено: 21.11.2024

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

ЗАЯВЛЕНИЕ О ПОДДЕРЖКЕ:
Пожалуйста, имейте в виду, что устранение неполадок с конфигурацией/функциональными возможностями сторонних приложений не покрывается нашим заявлением о поддержке. Эти ресурсы были предоставлены в качестве любезности, чтобы помочь вам в меру наших возможностей. Для получения дополнительной информации о нашем заявлении о поддержке щелкните здесь.

Установка

  • Войдите на свой (ve) сервер через SSH как пользователь root.
  • Используйте apt-get для обновления своего (ve) сервера.
  • Установите nginx.
  • По умолчанию nginx не запускается автоматически, поэтому вам нужно использовать следующую команду. Другими допустимыми параметрами являются "стоп" и "перезапуск".
  • Протестируйте nginx, указав в веб-браузере свое доменное имя или IP-адрес. Вы должны увидеть страницу nginx по умолчанию, как показано на рисунке 1 ниже:

Теперь, когда вы успешно установили nginx, пришло время посмотреть, что еще вы можете сделать.

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

После установки nginx вы, вероятно, захотите добавить несколько веб-сайтов. nginx позволяет очень просто создавать виртуальные хосты, позволяя размещать несколько веб-сайтов на одном (ve) сервере. В этой статье мы будем использовать Ubuntu. Направления будут немного отличаться для других операционных систем. Эти инструкции предназначены специально для Ubuntu 9.10, но должны работать и для других версий Ubuntu.

  • Если у вас не было ошибок, теперь вы сможете перейти на два новых сайта и увидеть "успешно".

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

Теперь вы выполнили шаги, необходимые для размещения нескольких веб-сайтов на вашем (ve) сервере. Очевидно, мы только что коснулись поверхности; с nginx можно делать гораздо больше.

Я пытаюсь запустить свой сервер nginx. Когда я набираю «$> /etc/init.d/nginx start», у меня появляется сообщение «Запуск nginx:», а затем ничего не происходит. Сообщение об ошибке отсутствует, и когда я проверяю состояние nginx, я вижу, что он не запущен.

Вот мой файл /etc/nginx/nginx.conf:

А вот мой файл /etc/nginx/sites-available/default:

И "sudo nginx -t" дает мне: nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf в порядке nginx: файл конфигурации /etc/nginx/nginx.conf тест прошел успешно

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

9 ответов 9

Во-первых, всегда используйте sudo nginx -t, чтобы убедиться, что ваши файлы конфигурации в порядке.

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

Как вы(@badmadrad) сказали, я получил следующее, запустив sudo nginx -t .но все же, когда я пытаюсь перезапустить его, он терпит неудачу. ferdinand@ferdinand-desktop:~$ sudo nginx -t nginx: синтаксис конфигурационного файла /etc/nginx/nginx.conf в порядке nginx: конфигурационный файл /etc/nginx/nginx.conf тест прошел успешно ferdinand@ferdinand-desktop:~ $ sudo service nginx restart * Перезапуск nginx nginx [сбой]

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

Возможно, вам следует проверить наличие ошибок в /var/log/nginx/error.log .

В моем случае я не добавлял порт для ipv6. Вы также должны сделать это (если вы используете nginx на порту, отличном от 80): listen [::]:8000 default_server ipv6only=on;

В вашем файле /etc/nginx/nginx.conf есть:

И, вероятно, вы используете следующий путь:

Обратите внимание на отсутствующую букву s на сайте.

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

1. Таким образом вы меняете номер порта на nginx,

sudo vim /etc/nginx/sites-available/default

Изменить 80 на 81 или что-то еще,

Надеюсь, это сработает

Да, он прав, если у вас что-то размещено на порту 80, это не будет работать. В моем случае я разместил apache2 на 80. Попробуйте изменить номер порта, как он предлагает. Спасибо

<р>1. Проверьте свои файлы конфигурации, выполнив вышеупомянутую команду: sudo nginx -t .

<р>2. Проверьте наличие конфликтов портов. Например, если apache2 ( ps waux | grep apache2 ) или любая другая служба использует те же порты, настроенные для nginx (скажем, порт 80), служба не запустится и завершится с ошибкой (ошибка. двоюродный брат у моего друга была эта проблема. )

Если у вас есть apache2 и он работает на том же порте[80], который вы настроили в nginx , вы получите сообщение об ошибке, даже если получите сообщение об успешном выполнении ngingx -t . Правильный способ заключается в том, что у вас есть только один веб-сервер, но если вы не можете этого сделать, используйте этот способ:

Сначала остановите apache2:

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

Проверьте состояние apache2 и nginx:

У меня была точно такая же проблема с моим экземпляром. Моя проблема заключалась в том, что я забыл разрешить доступ порта 80 к серверу. Может быть, это и ваша проблема?

Проверьте свой WHM и убедитесь, что порт открыт для IP-адреса вашего сайта,

Что бы это ни стоило: у меня возникла та же проблема после редактирования файла nginx.conf. Я пробовал и пытался перезапустить его, скомандовав перезапуск sudo nginx и различные другие команды. Ни один из них не дал никакого результата. Команда sudo nginx -t для проверки файла конфигурации дала вывод sudo: nginx: command not found , что вызвало недоумение. Я уже начал думать, что с путем возникли проблемы.

Наконец, я вошел в систему как пользователь root ( sudo su ) и скомандовал sudo nginx restart . Теперь команда отобразила сообщение об ошибке, касающееся файла конфигурации. После исправления он успешно перезапустился.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с тегами nginx или задайте свой вопрос.

Связано

Связанные

Горячие вопросы о сети

Чтобы подписаться на этот RSS-канал, скопируйте и вставьте этот URL-адрес в программу для чтения RSS.

дизайн сайта / логотип © 2022 Stack Exchange Inc; вклады пользователей под лицензией cc by-sa. версия 2022.3.21.41733

Я создал серверный блок (Nginx), я сделал весь процесс! Перезапустил Nginx, а потом не вернулся! Ретонор: Старт: nginx [Ошибка].

Следите за появлением ошибки в файле журнала:

Кто-нибудь может мне помочь? Помните, я новичок в Nginx.

Вы можете ввести !ref в этой текстовой области, чтобы быстро найти наш полный набор руководств, документации и предложений на рынке и вставить ссылку!

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

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

и закрытие

Первая проблема, которую я вижу, связана с этой строкой:

Хотя на самом деле это не является причиной проблемы, это может привести к появлению некоторых довольно странных журналов, поскольку определение error_page не предназначено для обработки перенаправлений на SSL и должно использоваться по назначению.

Однако реальная проблема заключается в том, что в этом блоке сервера отсутствует закрывающий > в конце файла.

Под этим блоком:

Вам нужно еще одно закрытие > , поэтому оно должно выглядеть так:

и это должно вас успокоить. Однако если возникнет другая проблема, сообщите мне, и мы рассмотрим эту ошибку и выясним, в чем проблема.

Лучший способ обойти проблемы с копированием и вставкой при использовании nano – это войти в систему как пользователь root с помощью SFTP (используя root в качестве имени пользователя, пароля root и IP-адреса дроплета — вы будете подключаться через порт 22).

После успешного входа в систему перейдите в каталог NGINX и загрузите файлы, а затем скопируйте и вставьте их из локального текстового редактора.

Причина в том, что в только что предоставленном вами Pastebin проблема связана с этой строкой:

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

Поэтому вам необходимо загрузить основной файл, nginx.conf и серверные блоки, связанные с сайтами, которые вы размещаете (т. е. все файлы конфигурации, начинающиеся с server < ).

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

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

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

Как добавить Nginx в автозапуск

Выполните команду:

Перезагрузите сервер и проверьте, работает ли Nginx:

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

Способ 1

Замените строку /etc/systemd/system/multi-user.target.wants/nginx.service в файле конфигурации Nginx

Перезагрузите сервер и проверьте, работает ли Nginx:

Метод 2

Добавьте строку в файл конфигурации раздела службы Nginx /etc/systemd/system/multi-user.target.wants/nginx.service

— задержка запуска в секундах. Рекомендуется установить задержку запуска 10 секунд.

Перезагрузите сервер и проверьте, работает ли Nginx:

оно не соответствует заголовку

это было трудно понять

Я не нашел ответ

рекомендации из статьи не помогли

Справка по поиску

Точный поиск по фразе

Чтобы найти контент, содержащий точную фразу "мел и сыр":

ИЛИ поиск

Чтобы найти контент, содержащий одно из слов "мел" ИЛИ "сыр":

И искать

Чтобы найти содержание, которое содержит как термины "мел", так и "сыр":

НЕ искать

Чтобы найти контент, который содержит слово "мел", но НЕ слово "сыр":

Исключенный поиск по термину

Подобно поиску НЕ, для поиска содержания, которое содержит слова "мел" и "масло", но НЕ слово "сыр":

Групповой поиск

Чтобы найти контент, который ДОЛЖЕН содержать слово "мел", но МОЖЕТ содержать слово "сыр" или "масло", используйте поиск:

Поиск по названию

Для поиска контента со словом "мел" в заголовке, где заголовок является ключевым словом поля.

Один символ

Чтобы найти "масло" или "тесто", вы можете использовать поиск:

Для поиска "курица" или "нут" вы можете использовать поиск:

Несколько символов

Чтобы найти "цыпленок" или "нут":

Вы также можете комбинировать поисковые символы, чтобы получить точное слово. Например, приведенный ниже поисковый запрос вернет «цыпленок», а не «нут»:

Поиск ярлыков

Используйте префикс labelText: для поиска содержания с определенной меткой.

Близкий поиск

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

возвратит "сообщение в блоге Octagon".

Нечеткий поиск

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

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

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

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

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

Примечание. Если вы еще не установили Nginx, обратитесь к нашим руководствам по установке Nginx в Ubuntu или установке Nginx в CentOS 8.

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

Как просмотреть статус вашего сервера Nginx

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

Система переключится в режим состояния, отображающий большое количество информации о службе Nginx.

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

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

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

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

Остановить и запустить Nginx

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

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

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

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

Изящный перезапуск Nginx

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

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

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

Принудительный перезапуск Nginx

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

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

Перезапуск или перезагрузка Nginx

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

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

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

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

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

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

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

Запуск Nginx

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

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

Перезапуск Nginx

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

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

Останов Nginx

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

Перезагрузка Nginx

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

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

Выйти из Nginx

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

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

Деян является руководителем отдела содержания в phoenixNAP с более чем 7-летним опытом веб-публикаций и написания технических текстов. До прихода в PNAP он был главным редактором нескольких веб-сайтов, стремящихся отстаивать новые технологии. Он старается упростить сложные понятия и дать осмысленное представление о центрах обработки данных и облачных технологиях.

В большинстве современных операционных систем Linux управлять службой довольно просто, если речь идет об основных командах.

Nginx (произносится как "engine-x") – это веб-сервер на базе Linux и приложение обратного прокси-сервера. Узнайте, как настроить его в качестве обратного прокси-сервера.

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