![/etc/nginx/nginx.conf:1 中不允许使用“server”指令](https://linux22.com/image/784041/%2Fetc%2Fnginx%2Fnginx.conf%3A1%20%E4%B8%AD%E4%B8%8D%E5%85%81%E8%AE%B8%E4%BD%BF%E7%94%A8%E2%80%9Cserver%E2%80%9D%E6%8C%87%E4%BB%A4.png)
我有一个 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;我很笨。