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

use*_*928 60 nginx

我正在尝试启动我的nginx服务器.当我输入"$> /etc/init.d/nginx start"时,我看到一条消息显示为"Starting 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/*;
Run Code Online (Sandbox Code Playgroud)

}

这是我的/ 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;
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 185

首先,始终sudo nginx -t要验证配置文件是否正常.

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

sudo service nginx restart

然后它奏效了.

  • `sudo nginx -t`是一个很棒的提示:) (57认同)

Arv*_*waj 9

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

在我的情况下,我没有添加ipv6的端口.你也应该这样做(如果你在80以外的端口上运行nginx): listen [::]:8000 default_server ipv6only=on;


Zah*_*man 7

一种情况是,您检查 nginx 默认保留系统中的 80 号端口,检查您是否有任何服务器(例如 apache)或系统上存在任何阻止 80 号端口的服务器,这就是问题发生的原因。

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

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

将 80 更改为 81 或其他任何值,

  1. 检查一切是否正常,

须藤 nginx -t

  1. 重启服务器

sudo 服务 nginx 启动

  1. 检查nginx的状态:

sudo 服务 nginx 状态

希望这会起作用


Dan*_*nco 5

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

include /etc/nginx/site-enabled/*;
Run Code Online (Sandbox Code Playgroud)

您使用的路径可能是:

/etc/nginx/sites-enabled/default
Run Code Online (Sandbox Code Playgroud)

注意站点中缺少的s


小智 3

检查 nginx.conf 文件中的 daemon 选项。它必须处于开启状态。或者您可以简单地从配置文件中删除这一行。此选项在这里有完整描述http://nginx.org/en/docs/ngx_core_module.html#daemon