uWSGI服务器日志...权限被拒绝读取文件...哪个文件?

时间:2012-06-27 06:09:57

标签: python django nginx uwsgi

我有一个服务器在emperor模式下运行带有uWSGI的Django / Nginx / uWSGI,并且它的错误日志(vassal级别的错误日志,而不是皇帝级日志)每次生成一个连续的权限错误新工人,像这样:

  

Tue Jun 26 19:34:55 2012 - 重生的uWSGI工作者2(新pid:9334)

     

打开文件进行阅读时出错:权限被拒绝

问题是,我不知道打开时有什么文件;显然,它不是日志文件,因为我正在查看它并且它正在写入没有问题。有什么方法可以找到?我在Ubuntu 12.04上通过Upstart运行uWSGI 1.0.3-debian的apt-get版本。该网站正在成功运行,除了看起来像是内存泄漏......因此我查看了日志文件。我已尝试更改整个/ opt /目录的权限以包含uwsgiuser用户,但无济于事。我正在使用TCP套接字,因此权限不应成为问题。它是缓存吗?这有自己的权限吗?如果是这样,在哪里?

My Upstart conf file

description "uWSGI" start on runlevel [2345] stop on runlevel [06] respawn

env UWSGI=/usr/bin/uwsgi env LOGTO=/var/log/uwsgi/emperor.log

exec $UWSGI \
--master \
--emperor /etc/uwsgi/vassals \
--die-on-term \
--auto-procname \
--no-orphans \
--logto $LOGTO \
--logdate

My Vassal ini档案:

[uwsgi]
# Variables
base = /opt/env/mysiteenv

# Generic Config
uid = uwsgiuser
gid = uwsgiuser
socket = 127.0.0.1:5050
master = true
processes = 2
reload-on-as = 128
harakiri = 60
harakiri-verbose = true
auto-procname = true
plugins = http,python
cache = 2000
home = %(base)
pythonpath = %(base)/mysite
module = wsgi
logto = /opt/log/mysite/error.log
logdate = true

2 个答案:

答案 0 :(得分:8)

这个问题的实际答案似乎是这个特定于Ubuntu的错误:

https://bugs.launchpad.net/ubuntu/+source/libjpeg-turbo/+bug/1031718

您可以通过添加行来解决问题

setuid uwsgiuser
setgid uwsgiuser

进入您的upstart配置文件,并从您的uwsgi配置中删除uidgid设置。

答案 1 :(得分:3)

您可以尝试strace进程并查看触发错误消息的内容,例如:

UWSGI=/usr/bin/uwsgi LOGTO=/var/log/uwsgi/emperor.log strace -f -o strace.log -etrace=open,write $UWSGI --master --emperor /etc/uwsgi/vassals --die-on-term --auto-procname --no-orphans --logto $LOGTO --logdate