
我有一個 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 是不同的。太長了;我很笨。