Nginx 错误("http" 指令在 /etc/nginx/sites-enabled/abc 中不允许使用)

我在启动 Nginx 服务时遇到以下错误

"http" 指令在 /etc/nginx/sites-enabled/abc:1 中不允许使用

以下是我的 abc 配置

worker_processes  1;
error_log /usr/local/openresty/nginx/logs/lua.log debug;
events {
  worker_connections 1024;
}
http {
  upstream kibana {
    server server1:30001;
    server server2:30001;
    keepalive 15;
  }
  server {
    listen 8882;
    location / {
        ssl_certificate /etc/pki/tls/certs/ELK-Stack.crt;
        ssl_certificate_key /etc/pki/tls/private/ELK-Stack.key;
        ssl_session_cache shared:SSL:10m;
        auth_basic "Restricted Access";
        auth_basic_user_file /etc/nginx/htpasswd.users;
      proxy_pass http://kibana;
      proxy_redirect off;
      proxy_buffering off;
      proxy_http_version 1.1;
      proxy_set_header Connection "Keep-Alive";
      proxy_set_header Proxy-Connection "Keep-Alive";
    }
  }
}

--> 注意:我将此文件创建在 /etc/nginx/sites-available 并且通过以下命令链接到 /etc/nginx/sites-enabled 。

sudo ln -s /etc/nginx/sites-available/abc /etc/nginx/sites-enabled/abc

执行上述命令后,我可以在 /etc/nginx/sites-enabled 目录中看到链接被创建。

请指出我做错了什么?

谢谢。

点赞
用户1296473
用户1296473

http 指令不应该放在这里。

nginx.conf 文件中,你已经有了 http 指令:

http {
    ..配置日志...
    include etc/nginx/sites-enabled/*;  <--- 这行代码包含了你的文件
    ..更多配置...
    server {
       (..默认服务器...)
       location / {
           index
           root
       }
    }
}

你在 sites-enabled 文件夹中的文件必须只包含服务器,http 指令应该在主要的配置中。我建议将它放在这里:

events {
  worker_connections 1024;
}

  upstream kibana {
    server server1:30001;
    server server2:30001;
    keepalive 15;
  }

    error_log /usr/local/openresty/nginx/logs/lua.log debug;

    listen 8882;
    location / {
        basic "Restricted Access";
        auth_basic_user_file /etc/nginx/htpasswd.users;
      proxy_pass http://kibana;
      proxy_redirect off;
      proxy_buffering off;
      proxy_http_version 1.1;
      proxy_set_header Connection "Keep-Alive";
      proxy_set_header Proxy-Connection "Keep-Alive";
    }

    ssl_certificate /etc/pki/tls/certs/ELK-Stack.crt;
    ssl_certificate_key /etc/pki/tls/private/ELK-Stack.key;
    ssl_session_cache shared:SSL:10m;

}
2017-06-08 11:51:22