web-dev-qa-db-fra.com

La directive du serveur nginx n'est pas autorisée ici

Je sais qu'il y a dupe là-bas, mais je n'arrive pas à résoudre ce problème dans ma situation.

Je suis en train de suivre un article sur la configuration de nginx en tant que proxy inverse avec Apache.

Et je reçois cette erreur:

nginx: [emerg] "server" directive is not allowed here in 
       /etc/nginx/v.hosts/mydomain.com.conf:3
nginx: configuration file /etc/nginx/nginx.conf test failed

Ma /etc/nginx/nginx.conf ressemble à ça:

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream; 
    access_log  /var/log/nginx/access.log  main;  
    charset   utf-8;
    keepalive_timeout  65;
    server_tokens       off;
    tcp_nopush          on;
    tcp_nodelay         off;

    server {
          listen 80;
          server_name  _;          
          root   /usr/share/nginx/html;
          index  index.html index.htm;     
       }
    }
include  v.hosts/*.conf;

Et cela, j'ai /etc/nginx/v.hosts/mydomain.com.conf ressemble à ça:

server {
      listen 80;
      server_name  mydomain.com;

       access_log  off;
       error_log off;

      location / {
        proxy_pass http://127.0.0.1:81;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        Host            $Host;
        proxy_redirect          off;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout 90;
        proxy_send_timeout 90;
        proxy_read_timeout 90;
        client_max_body_size 10m;
        client_body_buffer_size 128k;
        proxy_buffer_size 4k;
        proxy_buffers 4 32k;
        proxy_busy_buffers_size 64k;
      }
 }

Les indices et l'aide seront bien appréciés :)

48
gideon

Le problème est ici:

    }
include  v.hosts/*.conf;

Vous avez fermé le bloc http avant la directive include, mettant ainsi fin à la configuration. C'est pourquoi aucun des fichiers inclus ne fonctionne.

Pour résoudre le problème, include les fichiers dans le bloc http:

    include  v.hosts/*.conf;
}
42
Michael Hampton