7

我有一个在皇帝模式下运行 Django/Nginx/uWSGI 和 uWSGI 的服务器,并且它的错误日志(附庸级错误日志,而不是皇帝级日志)每次产生新的工作人员时都会出现持续的权限错误,像这样:

2012 年 6 月 26 日星期二 19:34:55 - 重生 uWSGI worker 2(新 pid:9334)

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

问题是,我不知道打开哪个文件有问题;显然,它不是日志文件,因为我正在查看它并且它正在毫无问题地写入它。有什么办法可以查到吗?我正在通过 Ubuntu 12.04 上的 Upstart 运行 apt-get 版本的 uWSGI 1.0.3-debian。除了看起来像内存泄漏之外,该站点运行成功……因此我查看了日志文件。我已经尝试更改整个 /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

我的附庸 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
4

2 回答 2

8

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

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

您可以通过放置线条来解决问题

setuid uwsgiuser
setgid uwsgiuser

进入你的新贵配置文件,并从你的 uwsgi 配置中删除uidgid设置。

于 2012-11-01T14:10:58.667 回答
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

于 2012-06-27T07:03:39.807 回答