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

Неизвестная директива "сервер" в/etc/nginx/nginx.conf:4

С nginx/0.7.65 Я получаю эту ошибку в строке 4. Почему она не распознает server?

#### CHAT_FRONT ####

server {
  listen 7000 default deferred;
  server_name example.com;
  root /home/deployer/apps/chat_front/current/public;

  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  error_page 500 502 503 504 /500.html;
  client_max_body_size 4G;
  keepalive_timeout 10;
}

#### CHAT_STORE ####

server {
  listen 7002 default deferred;
  server_name store.example.com;
  root /home/deployer/apps/chat_store/current/public;

  error_page 500 502 503 504 /500.html;
  client_max_body_size 4G;
  keepalive_timeout 10;
}

#### LOGIN ####

server {
  listen 7004 default deferred;
  server_name login.example.com;
  root /home/deployer/apps/login/current/public;

  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  error_page 500 502 503 504 /500.html;
  client_max_body_size 4G;
  keepalive_timeout 10;
}

#### PERMISSIONS ####

server {
  listen 7006 default deferred;
  server_name permissions.example.com;
  root /home/deployer/apps/permissions/current/public;

  error_page 500 502 503 504 /500.html;
  client_max_body_size 4G;
  keepalive_timeout 10;
}

#### SEARCH ####

server {
  listen 7008 default deferred;
  server_name search.example.com;
  root /home/deployer/apps/search/current/public;

  error_page 500 502 503 504 /500.html;
  client_max_body_size 4G;
  keepalive_timeout 10;
}

#### ANALYTICS ####

server {
  listen 7010 default deferred;
  server_name analytics.example.com;
  root /home/deployer/apps/analytics/current/public;

  error_page 500 502 503 504 /500.html;
  client_max_body_size 4G;
  keepalive_timeout 10;
}
4b9b3361

Ответ 1

Директива server должна содержаться в контексте модуля http. Кроме того, вам не хватает модуля событий верхнего уровня, который имеет одну обязательную настройку и кучу строф, которые должны быть в модуле http вашего конфига. Хотя документация nginx не особенно полезна при создании конфигурации с нуля, есть working примеры.

Источник: документация nginx по директиве сервера

Ответ 2

Добавление записи верхнего уровня обострило проблему:

events {  }

Ответ 3

Я переписал файл *.conf, и он сработал.

Ответ 4

Попробуйте настроить окончание строк и кодировку вашего файла конфигурации. В моем случае требовалось кодирование ANSI и, возможно, окончания строк в стиле "Linux" (только символы LF, а не символы CR и LF).

Я знаю, что это довольно старый вопрос. Однако рекомендация о принятом ответе (что директива server должна содержаться в контексте модуля http) может привести к путанице, поскольку существует множество примеров (на веб-сайте Nginx также и в этом руководстве Microsoft), где директива server не содержится. в контексте модуля http.

Возможно, ответ sd z ("Я переписал файл *.conf, и он работал") исходит из той же причины: был файл .config с неправильной кодировкой или окончаниями строк, который был исправлен после перезаписи файла.