Подтвердить что ты не робот

Когда нам нужно использовать http-блок в файле конфигурации nginx?

Я читаю учебник начинающих nginx, в разделе Обслуживание статического контента они имеют

http {
  server {
  }
}

но когда я добавляю http-блок, я получаю сообщение об ошибке

[emerg] Директива http не разрешена здесь...

Когда я удаляю блок http и изменяю файл conf для этого, он отлично работает:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/example.com/html;
    index index.html index.htm;

    # make site accessible from http://localhost/
    server_name localhost

    location / {
      try_files $uri $uri/ /index.html;
  }

Я подозреваю, что мне не хватает чего-то простого, но почему они используют http для обслуживания статических файлов?

4b9b3361

Ответ 1

Твоя работа. Я думаю, вы редактируете /etc/nginx/sites -enabled/default (или связанный файл в /etc/nginx/sites -available/default.

Это стандартная настройка nginx. Он настроен с /etc/nginx/nginx.conf, который содержит инструкцию http {}. Это, в свою очередь, содержит "включить/etc/nginx/sites-enabled/*", чтобы включить ваш файл выше с предложением server {} в нем.

Обратите внимание: если вы используете редактор, который создает файл резервной копии, вы должны изменить оператор include, чтобы исключить файлы резервных копий, или вы получите некоторые "интересные" ошибки! Моя строка

include /etc/nginx/sites-enabled/*[a-zA-Z] 

который не будет получать файлы резервных копий, заканчивающиеся на тильду. YMMV.