关于此问题,似乎在StackOverflow上有很多问题,但不幸的是,没有任何事情对我有用。
我在nginx上遇到502错误的网关,并且在日志中显示以下内容: connect() to ...myproject.sock failed (13: Permission denied) while connecting to upstream
我正在wsgi
和nginx
上ubuntu
,我一直在关注,从数字海洋本指南。wsgi
自uwsgi -s myproject.sock --http 0.0.0.0:8000 --module app --callable app
工作以来,我显然配置正确,但是我不断收到nginx
权限被拒绝的错误,我不知道为什么:
跨越未来之后这个问题,并且这另外一个,我改变了.ini
文件,并添加了chown-socket
,chmod-socket
,uid
和gid
参数(还尝试只设置了前两个,或,和几个不同的权限设置--and即使是最宽容的没有工作)。
这似乎很有希望,但我不相信selinux
它已安装在我的Ubuntu上(运行时显示sudo apt-get remove selinux
“未安装软件包'selinux',因此未删除”,find / -name "selinux"
并且什么也不显示)。为了以防万一,我也尝试了这篇文章的建议。卸载apparmor
(sudo apt-get install apparmor
)也不起作用。
每次进行更改时,我都会运行sudo service nginx restart
,但我只会看到502网关错误(以及在阅读日志时看到权限被拒绝的错误)。
这是我的nginx
配置文件:
server {
listen 80;
server_name 104.131.110.156;
location / {
include uwsgi_params;
uwsgi_pass unix:/home/user/myproject/web_server/myproject.sock;
}
}
.conf
文件:
description "uWSGI server instance configured to serve myproject"
start on runlevel [2345]
stop on runlevel [!2345]
setuid user
setgid www-data
env PATH=/root/.virtualenvs/my-env/bin
chdir /home/user/myproject/web_server
exec uwsgi --ini /home/user/myproject/web_server/myproject.ini
.ini
文件:
[uwsgi]
module = wsgi
master = true
processes = 5
socket = /home/user/myproject/web_server/myproject.sock
chown-socket=www-data:www-data
chmod-socket = 664
uid = www-data
gid = www-data
vacuum = true
die-on-term = true
(如果有帮助,这些都是我的数字海洋机器的规格:Linux 3.13.0-43-generic #72-Ubuntu SMP Mon Dec 8 19:35:06 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
)
请让我知道我能做些什么,非常感谢。
我也遵循了该教程并遇到了同样的问题。经过反复的试验和错误,以下步骤使我能够成功运行uWSGI和nginx:
我的nginx.config
档案:
server {
listen 80;
server_name localhost;
location / { try_files @yourapplication; }
location @yourapplication; {
include uwsgi_params;
uwsgi_pass unix:/PATH_TO_PROJECT/PROJECT.sock;
}
}
我的.ini
文件运行得不好,所以我决定利用uWSGI广泛的可用参数。这是我使用的:
uwsgi -s /PATH_TO_PROJECT/PROJECT.sock -w wsgi:app -H /PATH_TO_PROJECT/venv --http-processes=4 --chmod-socket=666 --master &
在哪里:
-s /PATH_TO_PROJECT/PROJECT.sock
=我.sock
档案的位置
-w wsgi:app
=wsgi.py
文件的位置,并且app
是Flask对象的名称
-H /PATH_TO_PROJECT/venv
=我的虚拟环境的位置
--http-processes=4
= uWSGI创建的http进程数
--chmod-socket=666
=在套接字上设置的权限
--master
=允许uWSGI与它的主流程管理器一起运行
&
=在后台运行uWSGI
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句