203 votes

nginx: [emerg] "serveur" de la directive n'est pas autorisé ici

J'ai reconfiguré nginx mais je n'arrive pas à redémarrer en utilisant la configuration suivante:

conf:

server {
listen 80;
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}


server {
listen 80;
server_name example.com;

access_log /var/log/nginx/access.log;
error_log  /var/log/nginx/error.log;

location /robots.txt {
    alias /path/to/robots.txt;
    access_log off;
    log_not_found off;
}

location = /favicon.ico { access_log off; log_not_found off; }

location / {
    proxy_pass_header Server;
    proxy_set_header Host $http_host;
    proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout 30;
    proxy_read_timeout 30;
    proxy_pass http://127.0.0.1:8000;
}

location /static {
    expires 1M;
    alias  /path/to/staticfiles;
}
}

après l'exécution de l' sudo nginx -c conf -t pour tester la configuration, le message d'erreur suivant est renvoyé je ne peux pas comprendre ce qu'est vraiment le problème

nginx: [emerg] "server" directive is not allowed here in    /etc/nginx/sites-available/config:1
nginx: configuration file /etc/nginx/sites-available/config test failed

347voto

Richard Smith Points 17777

Ce n'est pas un nginx le fichier de configuration. Elle est partie d'un nginx le fichier de configuration.

L' nginx le fichier de configuration (généralement appelés nginx.conf) ressemble à:

events {
    ...
}
http {
    ...
    server {
        ...
    }
}

L' server bloc est enfermé dans une http bloc.

Souvent, la configuration est répartie sur plusieurs fichiers, à l'aide de la include directives de tirer dans d'autres fragments (par exemple à partir de l' sites-enabled répertoire).

Utiliser sudo nginx -t tester l'ensemble des fichier de configuration, qui commence à la nginx.conf et tire dans d'autres fragments à l'aide de l' include directive. Consultez ce document pour plus d'.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X