Re: Nginx, ошибки.
Maxim Dounin
mdounin на mdounin.ru
Пн Окт 29 12:15:47 UTC 2018
Hello!
On Sat, Oct 27, 2018 at 07:03:31AM -0400, Pavel-1 wrote:
> привет.
> 1) отправляю команду -
> service nginx start
>
> 2) вот такой ответ -
> Job for nginx.service failed because the control process exited with
> error code.
> See "systemctl status nginx.service" and "journalctl -xe" for details.
>
> 3) отправляю команду -
> service nginx status
>
> 4) вырезал из ответа -
> Active: failed (Result: exit-code) since Sat 2018-10-27 19:55:47 +09;
> 1min 31s ago
> Docs: http://nginx.org/en/docs/
> Process: 7561 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
> (code=exited, status=1/FAILURE)
> окт 27 19:55:47 Tigina-Debian nginx[7561]: nginx: [emerg] still could
> not bind()
> окт 27 19:55:47 Tigina-Debian systemd[1]: nginx.service: Control process
> exited, code=exited status=1
> окт 27 19:55:47 Tigina-Debian systemd[1]: Failed to start nginx - high
> performance web server.
> окт 27 19:55:47 Tigina-Debian systemd[1]: nginx.service: Unit entered
> failed state.
> окт 27 19:55:47 Tigina-Debian systemd[1]: nginx.service: Failed with
> result 'exit-code'.
>
> Посоветуйте как решить проблему с запуском. !!Версию показывает нормально!!
Сообщение от nginx тут видно ровно одно:
nginx: [emerg] still could not bind()
Чуть ранее должно быть ещё пять сообщений на уровне emerg,
содержащих детали о том, на какой адрес nginx пытался сделать
bind(), и почему у него это не получилось. Как-то так:
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] still could not bind()
Странно, что в вашем случае их нет - но, возможно, по какой-то
причине systemd их не показывает. Загляните в лог nginx'а и/или
попробуйте запустить nginx руками.
Обычно такие проблемы случаются, если вы пытаетесь запустить nginx
на порту, который уже занят другим сервером. Смотрите вывод
"ss -nltp" или "netstat -an | grep LISTEN" и сравните с тем, что у вас
в конфигурации nginx и на какие сокеты он ругается .
Кроме того, такие же проблемы будут, если вы пытаетесь заставить
nginx для одного и того же порта сделать отдельные bind()'ы на
wildcard-адресе и на конкретном IP-адресе - на Линуксе такое
запрещено. Либо же если у вас в конфиге nginx'а в разных модулях
сконфигурированы конфликтующие listen-сокеты (e.g., "listen 80" в
http и "listen 80" в stream) - сам nginx проблемы не увидет, но
запуститься из-за конфликта не сможет.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru