django - nginx+uwsgi启动提示unknown directive "location /"(新手)
迷茫
迷茫 2017-04-24 09:09:45
0
1
1238

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呢?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

모든 응답(1)
伊谢尔伦

문제가 확실히 보입니다

으아악

귀하의 구성이 nginx 자체 구성 확인도 통과하지 못했습니다. 이는 nginx 구성에 문제가 있음을 의미합니다.
그런 다음 귀하의 구성에 포함된 것을 확인했습니다

으아악

오류가 nginx 구성/etc/nginx/sites-enabled/mysite.conf로 인해 발생한 것으로 확인됩니다.
구성을 다시 확인해야 할 것 같습니다. 전달 구성은 시작 문제가 있는 경우 감독자와는 아무 관련이 없습니다.
이 아이디어를 따르는 것이 좋습니다.

먼저 구성을 올바르게 수정하세요. nginx conf가 unix:///tmp/mysite.sock을 전달하도록 구성되어 있는 것을 확인했습니다. 이제 uwsgi 구성이 특정 포트를 수신할 소켓을 지정하지 않습니다.

과 같은 특정 포트에서 수신 대기하도록 uwsgi의 소켓 매개변수를 설정해 보세요. 으아악

그런 다음 nginx의 전달 uwsgi_pass unix:///tmp/mysite.sock;을
uwsgi_pass 127.0.0.1:8001

으로 변경합니다.

그런 다음 uwsgi -i uwsgi.ini로 이동하여 전달이 올 수 있는지 확인하세요

이 작업이 성공하면 지금 보고하고 있는 오류가 해결되어야 합니다. 뒷면을 보세요

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿