Rumah  >  Soal Jawab  >  teks badan

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 hari yang lalu1190

membalas semua(1)saya akan balas

  • 伊谢尔伦

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

    Anda dapat melihat dengan jelas masalah

    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
    

    Konfigurasi anda tidak melepasi pengesahan konfigurasi nginx sendiri, yang bermaksud terdapat masalah dengan konfigurasi nginx anda.
    Kemudian saya melihat bahawa konfigurasi anda termasuk

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

    Saya boleh mengesahkan bahawa ralat adalah kerana konfigurasi nginx anda/etc/nginx/sites-enabled/mysite.conf
    Saya rasa anda perlu menyemak semula konfigurasi anda. Jangan tergesa-gesa menggunakan penyelia konfigurasi pemajuan adalah Jika terdapat masalah permulaan, ia tiada kaitan dengan penyelia.
    Saya cadangkan anda mengikuti idea ini,

    Pertama ubah suai konfigurasi dengan betul Saya melihat bahawa conf nginx anda dikonfigurasikan untuk memajukan unix:///tmp/mysite.sock anda tidak menentukan soket untuk mendengar port tertentu Cuba tetapkan parameter soket uwsgi untuk mendengar pada port tertentu, seperti

    socket = 127.0.0.1:8001

    Kemudian tukarkan pemajuan uwsgi_pass unix nginx:///tmp/mysite.sock; kepada
    uwsgi_pass 127.0.0.1:8001

    Kemudian pergi ke uwsgi -i uwsgi.ini dan lihat jika pemajuan boleh datang

    Jika ini berjaya, ralat yang anda laporkan sekarang harus diselesaikan. Tengok belakang

    balas
    0
  • Batalbalas