Die Direktive „Server“ ist hier in /etc/nginx/nginx.conf:1 nicht zulässig.

Die Direktive „Server“ ist hier in /etc/nginx/nginx.conf:1 nicht zulässig.

Ich habe einen NGINX-Docker-Container mit einer nginx.confDatei, in die ich kopiere /etc/nginx/nginx.conf. Wenn ich den Container/Server starte, erhalte ich die folgende Fehlermeldung:

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

Ich habe es mir angesehen und es gibt viele Beiträge zu diesem Fehler (zugegeben, für andere Zeilennummern als „1“), aber ich verstehe nicht, was mit dieser Konfiguration nicht stimmt. Soweit ich weiß, sollte die minimale „korrekte“ Nginx-Konfiguration diese Struktur haben:

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

wobei dieser eventsTeil eigentlich auch optional ist.Meine Konfiguration sieht folgendermaßen aus:

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;
    }
  }
}

Ich habe auch mehrere Versionen ausprobiert und bei jeder Iteration etwas entfernt, bis hin zu diesem hier (mit und ohne eventsTeil):

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

und es kommt immer noch genau der gleiche Fehler. Ich baue den Container neu auf und kopiere die Konfiguration nach jeder Änderung, also kann es das nicht sein. Was mache ich falsch?

Antwort1

Wie ich im Kommentar geschrieben habe, lag der Fehler tatsächlich darin, dass ich das Image falsch neu erstellt habe, was dazu führte, dass die Änderungen nie in der NGINX-Konfiguration angezeigt wurden. Ich habe irgendwie ein Image mit genau demselben Namen erstellt wie das, mit dem ich begonnen habe, aber intern war es irgendwie eine andere ID. TLDR: Ich bin dumm.

verwandte Informationen