Nginx 没有运行,没有错误信息

Posted

技术标签:

【中文标题】Nginx 没有运行,没有错误信息【英文标题】:Nginx not running with no error message 【发布时间】:2013-07-25 10:37:18 【问题描述】:

我正在尝试启动我的 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;
  

【问题讨论】:

你试过service nginx configtest 吗? 使用这个命令给我这个答案:“测试 nginx 配置:nginx。” 而“sudo nginx -t”给了我: nginx:配置文件/etc/nginx/nginx.conf 语法没问题 nginx:配置文件/etc/nginx/nginx.conf 测试成功 你也试过用 sudo 启动 nginx 吗? 我总是用 sudo 启动它,否则当它尝试访问 error.log 文件时会出现权限被拒绝的错误 【参考方案1】:

首先,始终sudo nginx -t 验证您的配置文件是否正确。

我遇到了同样的问题。我有这个问题的原因是双重的。首先,我不小心将一个日志文件复制到了启用站点的文件夹中。我删除了日志文件并确保启用站点的所有文件都是正确的 nginx 站点配置。我还注意到我的两个虚拟主机正在侦听同一个域。所以我确保我的每个虚拟主机都有唯一的域名。

sudo service nginx restart

然后它起作用了。

【讨论】:

sudo nginx -t 是一个很棒的提示 :) 正如你(@badmadrad)所说,我通过运行sudo nginx -t.得到了以下信息。但是当我尝试重新启动它时仍然失败。 ferdinand@ferdinand-desktop:~$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful ferdinand@ferdinand-desktop:~$ sudo service nginx restart * Restarting nginx nginx [fail] 确保您的站点启用只有 nginx conf 文件。还要确保启动nginx时没有端口冲突。【参考方案2】:

您应该检查/var/log/nginx/error.log 中的错误。

就我而言,我没有为 ipv6 添加端口。您也应该这样做(如果您在 80 以外的端口上运行 nginx): listen [::]:8000 default_server ipv6only=on;

【讨论】:

【参考方案3】:

在您的 /etc/nginx/nginx.conf 文件中,您有:

include /etc/nginx/site-enabled/*;

你使用的路径可能是:

/etc/nginx/sites-enabled/default

请注意站点中缺少的 s

【讨论】:

【参考方案4】:

如果您检查 nginx 默认情况下在系统中保留 80 号端口,请检查您是否有像 apache 这样的服务器或系统上是否存在阻止 80 号端口的任何东西,这就是问题发生的原因。

1.你通过这种方式更改nginx上的端口号,

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

把 80 改成 81 什么的,

    检查一切正常,

sudo nginx -t

    重启服务器

sudo 服务 nginx 启动

    查看nginx状态:

sudo 服务 nginx 状态

希望能成功

【讨论】:

是的,他是正确的,如果您在端口 80 上托管了一些东西,那么它将无法工作。就我而言,我在 80 上托管了 apache2。尝试按照他的建议更改端口号。谢谢【参考方案5】:

检查 nginx.conf 文件中的守护进程选项。它必须打开。或者你可以简单地从配置文件中删除这一行。此选项在此处进行了完整描述http://nginx.org/en/docs/ngx_core_module.html#daemon

【讨论】:

就是这样。谢谢!【参考方案6】:

1.通过运行上述命令检查您的配置文件:sudo nginx -t

2. 检查端口冲突。例如,如果 apache2 (ps waux | grep apache2) 或任何其他服务正在使用为 nginx 配置的相同端口(例如端口 80),则该服务将不会启动并且会静默失败(错误...堂兄我的朋友有这个问题...)

【讨论】:

【参考方案7】:

如果您有apache2 并且它运行在您在nginx 中配置的同一port[80] 上,即使您在ngingx -t 上收到成功消息,您也会收到错误消息。 正确的做法是你只有一个网络服务器,但如果你不能这样做,使用这种方式:

第一站apache2:

sudo sytemctl stop apache2

然后重启nginx:

sudo service nginx restart

查看apache2和nginx的状态:

sudo systemctl status apache2

sudo systemctl status nginx

【讨论】:

【参考方案8】:

我的实例遇到了完全相同的问题。我的问题是我忘记允许端口 80 访问服务器。也许这也是你的问题?

检查您的 WHM 并确保该端口已为您网站的 IP 地址打开,

【讨论】:

你能解释一下吗 这意味着要访问页面的地址,您需要允许HTTP端口80上的流量到您的服务器实例。要启用它,如果您使用 AWS,您可以编辑安全组中的入站规则。对于 Google cluod,您可以在防火墙中进行编辑。如果您使用的是数字海洋、Azure 或 IBM 云等任何其他服务,或者类似设置。【参考方案9】:

值得一提的是:在编辑 nginx.conf 文件后,我也遇到了同样的问题。我尝试并尝试通过命令sudo nginx restart 和其他各种命令重新启动它。他们都没有产生任何输出。命令sudo nginx -t查看配置文件,输出sudo: nginx: command not found,令人费解。我开始认为路径有问题。

最后,我以 root 身份登录 (sudo su) 并命令sudo nginx restart。现在,该命令显示有关配置文件的错误消息。修复后,它重新启动成功。

【讨论】:

以上是关于Nginx 没有运行,没有错误信息的主要内容,如果未能解决你的问题,请参考以下文章

网页出现“504 Gateway Time-out”,没有其它信息是啥原因?

nginx日志错误日志说明

vs2005 SP1发布网站时发布失败,没有错误信息,没有警告信息。怎么解决啊?

Django + nginx + gunicorn 给出 502 错误。日志信息很少[关闭]

ubuntu系统安装nginx出现的错误(依赖环境没有安装完)

nginx中的uwsgi .ini param等价物(烧瓶app上有500个错误)