- Устранение неполадок установки и настройки Nginx
- Установка Nginx
- Проверка состояния Nginx
- Автозагрузка Nginx
- Управление сервисом Nginx
- Создание корневого каталога для статического контента
- Создание корневого каталога для динамических файлов
- Включение и отключение конфигурационных файлов
- Устранение неполадок с хэш-таблицей
- Тестирование конфигурации
- Важные файлы и каталоги Nginx
- Контент
- Конфигурация сервера
- Заключение
- Sudo service nginx restart не работает
- Как протестировать конфигурацию и перезапустить nginx
- Как запустить, остановить или перезапустить Nginx
- How to Start, Stop, or Restart Nginx
- В этом руководстве мы объясним, как запускать, останавливать и перезапускать Nginx на серверах Linux.
- Прежде чем вы начнете
- Запустите, остановите и перезапустите Nginx, используя systemctl
- Запустите, остановите и перезапустите Nginx, используя SysVinit
- Вывод
- Sudo service nginx restart не работает
Устранение неполадок установки и настройки 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, ознакомьтесь со следующими руководствами:
Источник
Sudo service nginx restart не работает
После того как конфигурационные файлы веб-сервера отредактированы необходимо перезапустить nginx чтобы произошло их повторное считывание.
Перед перезапуском веб-сервера nginx всегда имеет смысл тестировать корректность конфигурационных файлов, при наличии ошибок nginx может не запуститься, что вызовет неработоспособность сайта или сервиса, который обслуживает веб-сервер.
Как протестировать конфигурацию и перезапустить nginx
Проверить правильность синтаксиса конфигов можно выполнив следующую команду
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
При положительном результате в выводе будет приведенное выше сообщение или Syntax OK в зависимости от версии пакета. Если найдены ошибки выведутся названия файлов и строки на которых ошибки обнаружены.
Похожим образом тестируется конфигурация Apache (apache2ctl -t)
После тестирования серверу необходимо дать команду на перечитывание конфигов (опция -s обозначает signal, серверу можно отправить множество сигналом, но чаще всего это reload, stop и start)
Если ошибки все же есть и конфиги предварительно не тестировались nginx -s reload перезапустит nginx только в случае если к остановке веб-сервера это не приведет, т.е. если серьезных ошибок в конфигурации нет
Чтобы выполнить полную перезагрузку необходимо выполнить
Конфигурационные файлы при этом не тестируются. Выполнение команды необходимо при внесении каких-либо существенных изменений когда простого reload недостаточно.
Если Nginx по какой-то причине не останавливается (т.е. после выполнения /etc/init.d/nginx stop в выводе ps aux | grep nginx остаются процессы) процессы требуется завершить вручную, затем запустить Nginx.
Такое бывает если пакет собирался из исходников и для него не написаны инициализационные скрипты.
При работе в нагруженных проектах, обслуживающих сайты с посещаемостью в десятки тысяч человек в сутки и более, NGINX конфигурируют специальным образом, что дает максимальную производительность. Для небольших проектов выполнить такие настройки тоже может оказаться полезно.
Источник
Как запустить, остановить или перезапустить Nginx
How to Start, Stop, or Restart Nginx
В этом руководстве мы объясним, как запускать, останавливать и перезапускать Nginx на серверах Linux.
Nginx — это бесплатный высокопроизводительный HTTP и обратный прокси-сервер с открытым исходным кодом, отвечающий за загрузку некоторых крупнейших сайтов в Интернете. Он может использоваться как автономный веб-сервер и как обратный прокси-сервер для Apache и других веб-серверов.
Если вы разработчик или системный администратор, скорее всего, вы регулярно работаете с Nginx. Запуск, остановка и перезапуск / перезагрузка являются наиболее распространенными задачами при работе с веб-сервером Nginx.
Прежде чем вы начнете
В инструкциях предполагается, что вы вошли в систему как пользователь root или пользователь с привилегиями sudo .
Большинство современных дистрибутивов Linux используют SystemD в качестве системы инициализации по умолчанию и менеджера сервисов. Старые дистрибутивы основаны на SysVinit и используют сценарии инициализации для управления сервисами.
И служебные модули SystemD, и сценарий SysVinit принимают следующие аргументы для управления службой Nginx:
- start — Запускает службу Nginx.
- stop — Завершает службу Nginx.
- restart — Останавливается, а затем запускается служба Nginx.
- reload — авершает работу дочерних процессов, загружает новую конфигурацию и запускает новые дочерние процессы.
- status — показывает статус сервиса.
Команды для управления службой Nginx одинаковы во всех дистрибутивах Linux.
Запустите, остановите и перезапустите Nginx, используя systemctl
Systemd система и сервис менеджер по последней Ubuntu 18.04 / 16.04 , CentOS 7 / 8 , и Debian 10 / 9 — релизов.
Всякий раз, когда вы вносите изменения в конфигурацию Nginx, вам необходимо перезапустить или перезагрузить процессы веб-сервера. Выполните следующую команду, чтобы перезапустить службу Nginx:
При добавлении или редактировании серверных блоков предпочитайте перезагрузку, а не перезапуск. Перезапускайте службу только при внесении значительных изменений, таких как изменение портов или интерфейсов. При перезагрузке Nginx загружает новую конфигурацию, запускает новые рабочие процессы с новой конфигурацией и корректно завершает работу старых рабочих процессов.
Выполните команду ниже, чтобы перезагрузить службу Nginx:
Nginx также может напрямую контролироваться с помощью команд. Например, чтобы перезагрузить сервис, вы можете использовать следующую команду:
Чтобы запустить службу Nginx, выполните следующую команду:
Выполните следующую команду, чтобы остановить службу Nginx:
Запустите, остановите и перезапустите Nginx, используя SysVinit
Старые (EOLed) версии Ubuntu, CentOS и Debian используют сценарии init.d для запуска, остановки и перезапуска демона Nginx.
Перезапустите сервис Nginx:
Запустите сервис Nginx:
Остановите службу Nginx:
Вывод
В этом руководстве мы показали, как запускать, останавливать и перезапускать веб-сервер Nginx в системах Linux.
Источник
Sudo service nginx restart не работает
Установиле nginx на сервер добавили сайт хотим сделать рестарт sudo service nginx restart пишет такую ошибку где сделали ошибку не знаю.
Job for nginx.service failed because the control process exited with error code. See «systemctl status nginx.service» and «journalctl -xe» for details.
sudo systemctl status nginx.service
● nginx.service — A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2017-08-29 05:48:34 UTC; 5min ago
Process: 23211 ExecStop=/sbin/start-stop-daemon —quiet —stop —retry QUIT/5 —pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 24804 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
Main PID: 22745 (code=exited, status=0/SUCCESS)
Aug 29 05:48:34 shareaz1 systemd[1]: Starting A high performance web server and a reverse proxy server.
Aug 29 05:48:34 shareaz1 nginx[24804]: nginx: [emerg] directive «location» has no opening «<" in /etc/nginx/sites-enabled/share.conf:14
Aug 29 05:48:34 shareaz1 nginx[24804]: nginx: configuration file /etc/nginx/nginx.conf test failed
Aug 29 05:48:34 shareaz1 systemd[1]: nginx.service: Control process exited, code=exited status=1
Aug 29 05:48:34 shareaz1 systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Aug 29 05:48:34 shareaz1 systemd[1]: nginx.service: Unit entered failed state.
Aug 29 05:48:34 shareaz1 systemd[1]: nginx.service: Failed with result ‘exit-code’.
sudo journalctl -xe
Aug 29 05:07:34 shareaz1 sshd[24604]: Disconnecting: Too many authentication failures [preauth]
Aug 29 05:09:01 shareaz1 CRON[24607]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 29 05:09:01 shareaz1 CRON[24608]: (root) CMD ( [ -x /usr/lib/php/sessionclean ] && /usr/lib/php/sessionclean)
Aug 29 05:09:01 shareaz1 CRON[24607]: pam_unix(cron:session): session closed for user root
Aug 29 05:17:01 shareaz1 CRON[24656]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 29 05:17:01 shareaz1 CRON[24657]: (root) CMD ( cd / && run-parts —report /etc/cron.hourly)
Aug 29 05:17:01 shareaz1 CRON[24656]: pam_unix(cron:session): session closed for user root
Aug 29 05:39:02 shareaz1 CRON[24676]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 29 05:39:02 shareaz1 CRON[24677]: (root) CMD ( [ -x /usr/lib/php/sessionclean ] && /usr/lib/php/sessionclean)
Aug 29 05:39:02 shareaz1 CRON[24676]: pam_unix(cron:session): session closed for user root
Aug 29 05:48:02 shareaz1 sshd[24725]: Accepted publickey for generalazeri from 173.194.92.36 port 58818 ssh2: RSA SHA256:euZAjlNvgdC2YBKfVEIkbgwqge69FrcAgrmsUcl5F1M
Aug 29 05:48:02 shareaz1 sshd[24725]: pam_unix(sshd:session): session opened for user generalazeri by (uid=0)
Aug 29 05:48:02 shareaz1 systemd[1]: Started Session 41 of user generalazeri.
— Subject: Unit session-41.scope has finished start-up
— Unit session-41.scope has finished starting up.
— The start-up result is done.
Aug 29 05:48:02 shareaz1 systemd-logind[1332]: New session 41 of user generalazeri.
— Subject: A new session 41 has been created for user generalazeri
— A new session with the ID 41 has been created for the user generalazeri.
— The leading process of the session is 24725.
Aug 29 05:48:34 shareaz1 sudo[24797]: generalazeri : TTY=pts/2 ; PWD=/home/generalazeri ; USER=root ; COMMAND=/usr/sbin/service nginx restart
Aug 29 05:48:34 shareaz1 sudo[24797]: pam_unix(sudo:session): session opened for user root by generalazeri(uid=0)
Aug 29 05:48:34 shareaz1 systemd[1]: Stopped A high performance web server and a reverse proxy server.
— Subject: Unit nginx.service has finished shutting down
— Unit nginx.service has finished shutting down.
Aug 29 05:48:34 shareaz1 systemd[1]: Starting A high performance web server and a reverse proxy server.
— Subject: Unit nginx.service has begun start-up
— Unit nginx.service has begun starting up.
Aug 29 05:48:34 shareaz1 nginx[24804]: nginx: [emerg] directive «location» has no opening «<" in /etc/nginx/sites-enabled/share.conf:14
Aug 29 05:48:34 shareaz1 nginx[24804]: nginx: configuration file /etc/nginx/nginx.conf test failed
Aug 29 05:48:34 shareaz1 systemd[1]: nginx.service: Control process exited, code=exited status=1
Aug 29 05:48:34 shareaz1 sudo[24797]: pam_unix(sudo:session): session closed for user root
Aug 29 05:48:34 shareaz1 systemd[1]: Failed to start A high performance web server and a reverse proxy server.
— Subject: Unit nginx.service has failed
— Unit nginx.service has failed.
— The result is failed.
Aug 29 05:48:34 shareaz1 systemd[1]: nginx.service: Unit entered failed state.
Aug 29 05:48:34 shareaz1 systemd[1]: nginx.service: Failed with result ‘exit-code’.
Aug 29 05:51:01 shareaz1 google-accounts[1794]: INFO Removing user generalazeri.
Aug 29 05:54:05 shareaz1 sudo[24832]: generalazeri : TTY=pts/2 ; PWD=/home/generalazeri ; USER=root ; COMMAND=/bin/systemctl status nginx.service
Aug 29 05:54:05 shareaz1 sudo[24832]: pam_unix(sudo:session): session opened for user root by generalazeri(uid=0)
Aug 29 05:54:05 shareaz1 sudo[24832]: pam_unix(sudo:session): session closed for user root
Aug 29 05:56:45 shareaz1 sudo[24837]: generalazeri : TTY=pts/2 ; PWD=/home/generalazeri ; USER=root ; COMMAND=/bin/journalctl -xe
Aug 29 05:56:45 shareaz1 sudo[24837]: pam_unix(sudo:session): session opened for user root by generalazeri(uid=0)
Источник