Назад | Перейти на главную страницу

Внезапно Nginx сообщает, что директива сервера «[Emerg] запрещена» в первой строке файла conf.

Я новичок в администрировании серверов, и у меня огромная головная боль, пытаясь исправить файл конфигурации nginx, который просто не работает на удаленной машине Debian. Всякий раз, когда я пытаюсь отладить файл, nginx -c sites-enabled/estadaodados.com -t, я получаю такой ответ:

nginx: [emerg] "server" directive is not allowed here in /etc/nginx/sites-enabled/estadaodados.com:1

Это мой файл nginx.conf:

user www-data;
worker_processes 2;
pid /var/run/nginx.pid;

events {
  worker_connections 768;
  multi_accept on;
  use epoll;
}

http {    
  set_real_ip_from 127.0.0.1;
  real_ip_header X-Forwarded-For;
  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 20;
  client_max_body_size 15m;
  client_body_timeout 60;
  client_header_timeout 60;
  client_body_buffer_size  1K;
  client_header_buffer_size 1k;
  large_client_header_buffers 4 8k;
  send_timeout 60;
  reset_timedout_connection on;
  types_hash_max_size 2048;
  server_tokens off;
  server_names_hash_bucket_size 64;
  include /etc/nginx/mime.types;
  default_type application/octet-stream;
  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;
  log_format main '$remote_addr - $remote_user [$time_local] '
  '"$request" $status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for"';

  gzip on;
  gzip_static on;
  gzip_disable "MSIE [1-6].*(MSIE?.*SV1)";
  gzip_vary on;
  gzip_proxied any;
  gzip_comp_level 6;
  gzip_min_length 512;
  gzip_buffers 16 8k;
  gzip_http_version 1.1;
  gzip_types text/css text/javascript text/xml text/plain text/x-component application/javascript application/x-javascript application/json application/xml application/rss+xml font/truetype application/x-font-ttf font/opentype application/vnd.ms-fontobject image/svg+xml;

  # Virtual Host Configs
  include /etc/nginx/sites-enabled/*;
}

И это мой файл conf, который находится в папке с поддержкой сайтов (я только что удалил всю старую обширную конфигурацию, но даже этот небольшой блок кода по-прежнему не работает):

server {                                                                                                                                                                                                                                                                                                                                                     
  server_name estadaodados.com;
  listen *:80;
  root /home/edados/www/main;
  port_in_redirect off;
  server_tokens off;
  autoindex off;
  index index.html index.htm index.php;
}

Что мне не хватает?

При отладке конфигурации nginx вам необходимо указать путь для основного nginx.conf файл, который начинается с http блок. Поскольку вам напрямую предоставляется ваша конфигурация vhost для nginx -t его ошибка бросания.

Ты должен сделать nginx -c /path/to/nginx.conf -t.