
У меня есть контейнер 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. Я каким-то образом создал образ с точно таким же именем, как тот, который я запускал, но каким-то образом он был другим по внутреннему идентификатору. TLDR: я тупой.