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 или что-нибудь еще,

  1. Проверьте, все в порядке,

sudo nginx -t

  1. Перезапустить сервер

sudo service nginx start

  1. Проверить статус 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. Теперь команда вывела сообщение об ошибке, касающееся файла конфигурации. После его исправления он перезапустился успешно.