
Eu tenho um contêiner docker NGINX com um nginx.conf
arquivo para o qual copio /etc/nginx/nginx.conf
. Quando inicio o contêiner/servidor, recebo o seguinte erro:
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
Eu investiguei isso e há muitos posts sobre esse erro (concedido, para números de linha diferentes de "1"), mas não entendo o que há de errado com essa configuração. Pelo que entendi, a configuração mínima "correta" do nginx deve ter esta estrutura:
events {
...
}
http {
...
server {
...
}
}
com a events
parte sendo realmente opcional também.Minha configuração fica assim:
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;
}
}
}
Também tentei várias versões, removendo algo em cada iteração, até isso (com e sem events
parte):
http {
server {
listen 80;
location / {
try_files $uri /index.html;
}
}
}
e ainda dá exatamente o mesmo erro. Eu reconstruo o contêiner e copio a configuração após cada alteração, então não pode ser isso. O que estou fazendo de errado?
Responder1
Como escrevi no comentário, o erro realmente foi reconstruir a imagem incorretamente, fazendo com que as alterações nunca aparecessem na configuração do NGINX. De alguma forma, construí uma imagem com exatamente o mesmo nome daquela que estava iniciando, mas era diferente por ID internamente. TLDR; Eu sou estúpido.