Maison  >  Questions et réponses  >  le corps du texte

django - nginx+uwsgi启动提示unknown directive "location /"(新手)

p.s: 环境是ubuntu16.04,项目的目录是/home/alps/mysite

# uwsgi启动正常
uwsgi -i uwsgi.ini

/home/alps/mysite/uwsgi.ini配置文件如下

[uwsgi]
socket = 127.0.0.1:8001
chdir=/home/alps/mysite/
wsgi-file = mysite/wsgi.py

processes = 2
threads = 4

chmod-socket = 664

/etc/nginx/sites-enabled/mysite.conf的配置文件如下

server{
    location / {
        listen 80;
        uwsgi_pass 127.0.0.1:8001 
        include     /etc/nginx/uwsgi_params;
    }
}

下面是报错信息

$ sudo service nginx configtest
 * Testing nginx configuration    [fail] 

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

$ systemctl status nginx.service
● 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 Thu 2016-09-29 19:52:25 CST; 11s ago
  Process: 3450 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)

Starting A high performance web server and a reverse proxy server...
nginx: [emerg] unknown directive "location /" in /etc/nginx/sites-enabled/mysite.conf:2
nginx: configuration file /etc/nginx/nginx.conf test failed
nginx.service: Control process exited, code=exited status=1
Failed to start A high performance web server and a reverse proxy server.
nginx.service: Unit entered failed state.
nginx.service: Failed with result 'exit-code'.

请问"location /"为什么是unknown directive呢?

迷茫迷茫2734 Il y a quelques jours1191

répondre à tous(1)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-04-24 09:11:45

    Vous pouvez clairement voir un problème

    9月 27 22:41:01 yue nginx[4206]: nginx: [emerg] unknown directive "server " in /etc/nginx/sites-enabled/mysite.conf:1
    9月 27 22:41:01 yue nginx[4206]: nginx: configuration file /etc/nginx/nginx.conf test failed
    

    Votre configuration ne réussit même pas la propre vérification de configuration de nginx, ce qui signifie qu'il y a un problème avec votre configuration nginx.
    Puis j'ai vu que votre configuration incluait

    include /etc/nginx/sites-enabled/*;

    Je peux confirmer que l'erreur signalée est due à votre configuration nginx/etc/nginx/sites-enabled/mysite.conf
    Je pense que vous devez vérifier à nouveau votre configuration. Ne vous précipitez pas pour utiliser le superviseur If. votre configuration de transfert est la suivante : S'il y a un problème de démarrage, cela n'a rien à voir avec le superviseur.
    Je vous propose de suivre cette idée,

    Modifiez d'abord la configuration correctement. Je vois que votre configuration nginx est configurée pour transférer unix:///tmp/mysite.sock ; votre configuration uwsgi ne spécifie pas de socket pour écouter un certain port. Maintenant, je pense que vous pouvez. Essayez de définir les paramètres de socket d'uwsgi pour écouter sur un certain port, tel que

    socket = 127.0.0.1:8001

    Ensuite, remplacez le transfert de nginx uwsgi_pass unix:///tmp/mysite.sock ; par
    uwsgi_pass 127.0.0.1:8001

    Ensuite, allez sur uwsgi -i uwsgi.ini et voyez si le transfert peut arriver

    Si cela réussit, l'erreur que vous signalez maintenant devrait être résolue. Regarde au dos

    répondre
    0
  • Annulerrépondre