52 votes

La directive nginx server n'est pas autorisée ici

Je sais qu'il existe des doublons, mais je n'arrive pas à résoudre ce problème dans mon cas.

Je suis en train de suivre un article sur la mise en place de nginx comme reverse proxy avec apache.

Et j'obtiens 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

Mon /etc/nginx/nginx.conf ressemble à ceci :

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, je l'ai fait /etc/nginx/v.hosts/mydomain.com.conf ressemble à ceci :

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 très appréciés :)

47voto

Michael Hampton Points 232226

Le problème est là :

    }
include  v.hosts/*.conf;

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

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

    include  v.hosts/*.conf;
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X