la directiva del servidor nginx no está permitida aquí

44

Sé que hay engaños de esto por ahí, pero parece que no puedo resolver esto en mi situación.

Estoy siguiendo un artículo sobre cómo configurar nginx como proxy inverso con apache.

Y me sale este error:

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

Mi /etc/nginx/nginx.confaspecto es este:

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;

Y esto que tengo se /etc/nginx/v.hosts/mydomain.com.confve así:

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;
      }
 }

Las pistas y la ayuda serán muy apreciadas :)

Gedeón
fuente
Se eliminaron todos los enlaces, ya que están muertos ahora.
Sven

Respuestas:

39

El problema está aquí:

    }
include  v.hosts/*.conf;

Ha cerrado el httpbloque antes de la includedirectiva, terminando así la configuración. Es por eso que ninguno de los archivos incluidos funciona.

Para solucionar el problema, includelos archivos dentro del httpbloque:

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