Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

nginx: [emerg] "http" directive is not allowed here in /etc/nginx/sites-enabled/default:1

Tags:

nginx

I'm new to NGINX and I'm trying to setup minimal working thing. So I trying to run aiohttp mini-app with nginx and supervisor (by this example). But I can't configure Nginx right and getting the following error:

nginx: [emerg] "http" directive is not allowed here in /etc/nginx/sites-enabled/default:1 

Here is full default.conf file:

http {   upstream aiohttp {     # Unix domain servers     server unix:/tmp/example_1.sock fail_timeout=0;     server unix:/tmp/example_2.sock fail_timeout=0;     server unix:/tmp/example_3.sock fail_timeout=0;     server unix:/tmp/example_4.sock fail_timeout=0;   }    server {     listen 80;     client_max_body_size 4G;      server example.com;      location / {       proxy_set_header Host $http_host;       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;       proxy_redirect off;       proxy_buffering off;       proxy_pass http://aiohttp;     }   }  } 

It looks correct. server directive is in http as it should be. And http is parent directive. What I'm doing wrong?

like image 698
Paul Avatar asked Apr 26 '17 20:04

Paul


1 Answers

I am assuming that you have http in your /etc/nginx/nginx.conf file which then tells nginx to include sites-enabled/*;

So then you have

 http     http        server 

As the http directive should only happen once just remove the http directive from your sites-enabled config file(s)

like image 130
Shawn C. Avatar answered Sep 17 '22 14:09

Shawn C.