Nginx не работает без сообщения об ошибке
Я пытаюсь запустить свой nginx-сервер.
Когда я набираю "$ > /etc/init.d/nginx start", появляется сообщение "Запуск nginx:", а затем ничего не происходит. Нет сообщения об ошибке, и когда я проверяю состояние nginx, я вижу, что он не работает.
Вот мой файл /etc/nginx/nginx.conf:
worker_processes 4;
daemon off;
error_log /home/vincent/tmp/nginx.log;
pid /home/vincent/tmp/nginx.pid;
events {
worker_connections 1024;
}
http {
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /home/vincent/tmp/access.log main;
sendfile on;
keepalive_timeout 65;
include /etc/nginx/site-enabled/*;
}
И вот мой файл /etc/nginx/sites -available/default:
server {
listen 80;
server_name technical-test.neo9.lan;
access_log /var/log/nginx/technical-test.neo9.lan.log main;
set $home /home/vincent;
location / {
alias $home/neo9/web/app/;
index index.html;
}
location /api/ {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://localhost:1234;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Ответы
Ответ 1
Во-первых, всегда sudo nginx -t
, чтобы проверить, что ваши файлы конфигурации хороши.
Я столкнулся с той же проблемой. Причина, по которой у меня возникла проблема, была двоякой. Во-первых, я случайно скопировал файл журнала в папку с поддержкой сайта. Я удалил файл журнала и убедился, что все файлы с включенными сайтами были правильными конфигурациями сайта nginx. Я также заметил, что два моих виртуальных хоста прослушивали один и тот же домен. Поэтому я убедился, что каждый из моих виртуальных хостов имеет уникальные имена доменов.
sudo service nginx restart
Затем он работал.
Ответ 2
Вероятно, вы должны проверить наличие ошибок в /var/log/nginx/error.log
.
В моем случае я не добавил порт для ipv6. Вы также должны это сделать (если вы используете nginx на порту, отличном от 80):
listen [::]:8000 default_server ipv6only=on;
Ответ 3
В вашем файле /etc/nginx/nginx.conf
у вас есть:
include /etc/nginx/site-enabled/*;
И, вероятно, путь, который вы используете, это:
/etc/nginx/sites-enabled/default
Обратите внимание на отсутствующий s на сайте.
Ответ 4
Проверьте параметр daemon в файле nginx.conf. Он должен быть включен. Или вы можете просто вырвать эту строку из файла конфигурации. Эта опция полностью описана здесь http://nginx.org/en/docs/ngx_core_module.html#daemon
Ответ 5
1. Проверьте свои файлы конфигурации, выполнив указанную выше команду: sudo nginx -t
.
2. Проверьте конфликты портов. Например, если apache2 (ps waux | grep apache2
) или любая другая служба используют одни и те же порты, настроенные для nginx (например, порт 80), служба не запустится и будет терпеть неудачу (ошибка... у кузины моего друга была эта проблема...)
Ответ 6
В одном случае вы проверяете, что nginx удерживает 80-портовый порт в системе по умолчанию, проверьте, есть ли у вас какой-либо сервер как apache или что-то еще в системе, в котором помещается номер порта 80. Эта проблема возникла.
1. Таким образом вы меняете номер порта на nginx,
sudo vim/etc/nginx/sites-available/default
Измените значение 80 на 81 или что-нибудь еще,
- Проверьте, все в порядке,
sudo nginx -t
- Перезапустить сервер
sudo service nginx start
- Проверить статус nginx:
sudo service nginx status
Надеюсь, что это сработает
Ответ 7
У меня была такая же проблема с моим экземпляром. Моя проблема заключалась в том, что я забыл разрешить доступ порта 80 к серверу. Может быть, и ваша проблема?
Проверьте свой WHM и убедитесь, что порт открыт для IP-адреса вашего сайта,
Ответ 8
Для чего это стоит: у меня была такая же проблема после редактирования файла nginx.conf
. Я попытался перезапустить его, выполнив команду sudo nginx restart
и различные другие команды. Ни один из них не производил никакой продукции. Командование sudo nginx -t
для проверки файла конфигурации дало результат sudo: nginx: command not found
, который был озадачен. Я начинал думать, что есть проблемы с этим путем.
Наконец, я зарегистрировался как root (sudo su
) и командовал sudo nginx restart
. Теперь команда вывела сообщение об ошибке, касающееся файла конфигурации. После его исправления он перезапустился успешно.