/etc/nginx/nginx.conf:1 中不允许使用“server”指令

/etc/nginx/nginx.conf:1 中不允许使用“server”指令

我有一个 NGINX docker 容器,其中有一个nginx.conf我将文件复制到其中的文件/etc/nginx/nginx.conf。当我启动容器/服务器时,出现以下错误:

2023/02/15 16:24:10 [emerg] 1#1: "server" directive is not allowed here in /etc/nginx/nginx.conf:1
nginx: [emerg] "server" directive is not allowed here in /etc/nginx/nginx.conf:1

我查看了一下,发现有很多关于此错误的帖子(当然,行号不是“1”),但我不明白这个配置有什么问题。据我所知,最低“正确”的 nginx 配置应该具有以下结构:

events {
    ...
}
http {
    ...
    server {
        ...
    }
}

events部分实际上也是可选的。我的配置如下:

events {
  worker_connections  4096;  ## Default: 1024
}

http {
  server {
    listen 80;
    location / {
      root   /usr/share/nginx/html;
      index  index.html index.htm;
      try_files $uri $uri/ /index.html;
    }
  }
}

我也尝试了多个版本,每次迭代都删除一些内容,最后只剩下这个(有和没有events部分):

http {
  server {
    listen 80;
    location / {
      try_files $uri /index.html;
    }
  }
}

但仍然出现完全相同的错误。每次更改后我都会重建容器并复制配置,所以不可能是那样。我做错了什么?

答案1

正如我在评论中写的那样,错误确实在于我错误地重建了镜像,导致更改从未显示在 NGINX 配置中。我以某种方式构建了一个与我启动的镜像名称完全相同的镜像,但不知何故内部 ID 却不同。TLDR;我很笨。

相关内容