2017-03-16 81 views
-1

我创建了一个不使用虚拟环境的django应用程序。我已经安装了nginx并尝试通过uwsgi应用程序将它们集成在一起。 这里是我的配置文件。django nginx uwsgi不工作

[uwsgi] 
chdir = /home/elastic/workspace/ES_Brevetti 
wsgi-file = ES_Brevetti/wsgi.py 
master = true 
processes = 5 
uid = nginx 
gid = nginx 
socket = unix:///socket/uwsgi.sock 
chmod-socket = 666 
vacuum = true 

我已经创建与许可文件/sockect/uwsgi.sock 777

CHOWN nginx的:nginx的-R /sockect/uwsgi.sock

和下面的nginx CONF文件:

upstream django { 
    server unix:///socket/uwsgi.sock; # for a file socket 
    #server 127.0.0.1:8001; # for a web port socket (we'll use this first) 
} 
server { 
    listen 80; 
    server_name 10.184.2.231; 
    error_log /var/log/nginx/error.log; 
    access_log /var/log/nginx/access.log; 
    charset utf-8; 

    location /static/ { 
     alias /home/elastic/workspace/ES_Brevetti; 
    } 

    location/{ 
     include   uwsgi_params; 
     uwsgi_pass  unix:///socket/uwsgi.sock; 
    } 
} 

当我启动 “启动systemctl nginx的” nginx的开始,错误: connect()以UNIX:///socket/uwsgi.sock失败(111:连接被拒绝),同时连接到上游,

当我运行uwsgi --ini /etc/uwsgi/sites/ES_Brevetti.ini它并不与错误运行:

..... 
lock engine: pthread robust mutexes 
thunder lock: disabled (you can enable it with --thunder-lock) 
bind(): Permission denied [core/socket.c line 230] 

什么,我做错了什么?在谷歌,我只能看到与VENV配置,而我不使用虚拟环境。

+0

现在uwsgi启动并运行,但不断收到以下错误:502错误的网关和nginx日志文件我得到“connect()unix:///socket/uwsgi.sock失败(111:连接被拒绝)while连接到上游“。请帮忙吗? – user3779542

+0

你说运行uwsgi不会运行一个错误,但输出显示错误'bind():Permission denied',这看起来与你的'111:Connection refused'错误相同。这表明你的套接字没有正确的所有权/许可权。你可以显示套接字的权限并说出你正在运行的是什么用户? – daphtdazz

+0

好的,谢谢你的回复。我对uwsgi.sock的套接字权限是777,所有者是nginx:nginx nginx服务器以root身份启动:“sudo systemctl start nginx”否则它不会启动,而uwsgi以用户“elastic”的身份运行,即我是用户登录但ini文件我有uid = nginx gid = nginx ....任何帮助?顺便说一句我已经添加nginx – user3779542

回答

0

docs(我猜你在跟着)建议你的uwsgi ini文件中的socket配置选项应该有一个到socket的路径,而不是URL。你可以尝试改变:

[uwsgi] 
... 
socket = unix:///socket/uwsgi.sock 

[uwsgi] 
... 
socket = /socket/uwsgi.sock 
+0

如果我做了这个改变,我再次得到错误时运行uwsgi:错误删除unix套接字,unlink():权限被拒绝[core/socket.c line 198] bind():地址已经在使用[core/socket.c第230行] – user3779542

0

的解决办法是改变插座= UNIX:///socket/uwsgi.sock到插座= /socket/uwsgi.sock在uwsgi。 ini文件。我不知道为什么在一些文件中它出现了双斜杠逃跑。