首先,我是100%的新手,所以我甚至不确定要问什么。
我正在尝试在Ubuntu 12.04上为Django构建一个生产环境。我安装了Nginx,uWSGI,Python,Django等。我在这里遵循了这个指南:https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-uwsgi-and-nginx-on-ubuntu-14-04。
我收到502 Bad Gateway
错误,当我检查error.log
文件时,我发现了这个错误:
2015/07/22 17:43:18 [crit] 23919#0: *3 connect() to unix:/home/ubuntu/lsb/lsb.sock failed (2: No such file or directory) while connecting to upstream, client: 180.152.149.63, server: 115.159.36.162, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/home/ubuntu/lsb/lsb.sock:", host: "115.159.36.162:8000"
根据指南,我创建了所有相关文件,但我只有1个项目,并将user
的所有实例替换为ubuntu
,将firstproject
替换为lsb
。
对于服务器块配置文件,我只使用了服务器的IP地址和端口8000. /etc/nginx/sites-available
中的那个。
server {
listen 8000;
server_name 115.159.36.162;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/ubuntu/lsb;
}
location / {
include uwsgi_params;
uwsgi_pass unix:/home/ubuntu/lsb/lsb.sock;
}
}
除此之外,我几乎都遵循了这封信的指南。我找到一个人说这是由于uwsgi_params
的权限问题,我使用sudo chown ubuntu uwsgi_params
但是也没有解决它(我甚至不确定这是否是正确的命令使用...)。
无论如何,我甚至不知道我在这里不知道的是什么。任何建议将不胜感激,谢谢!!
丹尼尔罗斯曼的建议之后更新
我确实从未开始uwsgi
,但当我尝试sudo service uwsgi start
时,我收到错误uwsgi: unrecognized service
。然后我回到指南,看到他们建议我在安装它之后立即运行uwsgi命令来测试它:
uwsgi --http :8080 --home /home/user/Env/firstsite --chdir /home/user/firstsite -w firstsite.wsgi
此命令返回另一个错误
Fatal Python error: Py_Initialize: Unable to get the locale encoding ImportError: No module named 'encodings'
有些网站称这与uwsgi无法找到Python有关。我之前安装过Python3.4,当我在shell中的任何地方输入python3.4
时,它是可访问的。除此之外,我认为还安装了2.7个,也许还有3.2个。不确定这是否相关,并且不确定如何帮助uwsgi“找到”Python,或者甚至是问题。
回顾过去,这里列出了一些与指南不同的事情(与之前的“信件”声明相矛盾)可能与问题有关。
我从这个Felix Krull存放处安装了python3.4,主要是因为当我试图做正常的sudo apt-get install python3
时它给了我一个错误,所以在我添加了存储库之后我做了{{1} }。
我使用的点不是所有这些网站都在说的sudo apt-get install python3.4
,因为再一次,我似乎根本无法安装pip3。所以我最终做的是从pip的网站获得pip3
,并使用get-pip.py
执行它。
最重要的是,在安装python-dev python3.4
的指南中,我做了sudo apt-get install python-dev
。这是指南说uwsgi需要的东西,所以我不确定这是不是搞砸了。
再次感谢Daniel的所有帮助!