nginx 不允许“worker_processes”指令

Cas*_*sie 10 config nginx akka

我需要使用以下路由创建 nginx.conf 文件:/assets - 静态文件,/akka - 用于 hello-world akka webapp,/* - 默认页面。我的 default.conf 文件如下所示:

worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

http {
    include mime.types;
    default_type  application/octet-stream;

    upstream hello-akka{
        server localhost:9000;
    }

    server {
        listen 80;

        location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        }

        location /akka {
        proxy_pass http://hello-akka;
        }

        location /assets {
        root /var/www;
        }   
    }
}
Run Code Online (Sandbox Code Playgroud)

每次重新启动 nginx 服务时,都会收到以下错误消息:

nginx: [emerg] "worker_processes" directive is not allowed here in /etc/nginx/conf.d/default.conf:2
nginx: configuration file /etc/nginx/nginx.conf test failed
Run Code Online (Sandbox Code Playgroud)

我检查了文件本身的结构,但我无法弄清楚出了什么问题。即使我删除了这一行,我也会收到相同的“不允许指令”错误,但对于其他行,如 pid、事件等。那么我该如何修复这样的错误呢?

Ash*_*ari 26

/etc/nginx/nginx.conf将该指令放在代替的顶部/etc/nginx/conf.d/default.conf

worker_processes指令仅在配置的顶层有效。

现在它默认出现在/etc/nginx/nginx.conf.


Dup*_*ngh -3

一个对我有用的简单解决方案。

只需在 ngnix.conf 中添加server部分并删除所有内容,例如

server {
    listen 80;

    location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
    }

    location /akka {
    proxy_pass http://hello-akka;
    }

    location /assets {
    root /var/www;
    }   
}
Run Code Online (Sandbox Code Playgroud)