1 votes

Erreur dans le fichier de configuration de nginx

Je suis les tutoriel sur Flask servant avec nginx sur Digital Ocean. Après avoir créé le fichier de configuration suivant pour nginx dans /etc/sites-available/mysite :

server {
    listen 80;
    server_name your_domain www.your_domain;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/home/user/myproject/myproject.sock;
    }
}

(évidemment, j'ai remplacé domain par mon domaine et path to socket par mon socket), lorsque je lance sudo nginx -t -c /etc/nginx/sites-available/mysite j'obtiens

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

J'ai vérifié deux fois que j'ai copié le code correctement. Qu'est-ce qui pourrait ne pas aller ?

UPD :

Si je lance simplement sudo nginx -t, je n'obtiens aucune erreur, mais sudo systemctl restart nginx échoue avec :

Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.

La commande systemctl status nginx.service retours :

 nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2018-11-27 11:33:49 UTC; 39s ago
     Docs: man:nginx(8)
  Process: 8485 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
  Process: 8475 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)

journalctl -xe ne contient aucune entrée pertinente pour le temps.

1 votes

L'erreur est légitime, car vous ne vérifiez qu'une partie de la configuration. Essayez de vérifier avec nginx -t seulement (nginx.conf contient la configuration de base).

2voto

Tommiie Points 5467

Le fichier de configuration de nginx contient un http qui inclura tous les fichiers dans /etc/nginx/sites-enabled/ . Le tutoriel vous demande de créer le fichier en /etc/nginx/sites-available/ puis créez un lien vers celui-ci à partir de /etc/nginx/sites-enabled/ .

Ensuite, il vous demande de tester le complet configuration en utilisant sudo nginx -t alors que vous ne testez que la configuration de votre fichier. Votre fichier n'est cependant qu'un petit extrait de la configuration complète de nginx requise pour faire fonctionner nginx.

Assurez-vous de créer la liaison logicielle, puis de la tester sans spécifier de fichier de configuration afin qu'elle soit testée par rapport à l'accès complet au fichier de configuration à partir de /etc/nginx.conf (ou similaire).

0 votes

J'ai suivi le tutoriel et créé un lymlink ; sudo nginx -t fonctionne bien : ~$ sudo nginx -t nginx : the configuration file /etc/nginx/nginx.conf syntax is ok nginx : configuration file /etc/nginx/nginx.conf test is successful

0 votes

Mais sudo systemctl restart nginx ne fonctionne pas : sudo systemctl restart nginx Job for nginx.service failed because the control process exited with error code. Voir "systemctl status nginx.service" et "journalctl -xe" pour plus de détails.

1 votes

Et ? Avez-vous vérifié les commandes données pour plus de détails ?

0voto

Michael Hampton Points 232226

L'erreur se trouve dans un différents celui que nginx a lu immédiatement avant celui-ci. Vérifiez les autres fichiers dans sites-enabled pour voir s'il manque un fichier } .

0 votes

Là-bas, je n'ai que par défaut ça a l'air bien.

0 votes

@sooobus Continuez à chercher.

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