Вопрос по uwsgi, python, django, nginx – Журнал сервера uWSGI ... не разрешено чтение файла ... какой файл?

7

У меня есть сервер, на котором работает Django / Nginx / uWSGI с uWSGI в режиме императора, и в журнале ошибок для него (журнал ошибок на уровне вассала, а не журнал на уровне императора) постоянно появляется ошибка прав доступа каждый раз, когда он порождает нового работника, вот так:

Tue Jun 26 19:34:55 2012 - Respawned uWSGI worker 2 (new pid: 9334)

Error opening file for reading: Permission denied

Проблема в том, что я не знаю, какой файл у него возникли проблемы с открытием; это, очевидно, не файл журнала, так как я смотрю на него и пишу на него без проблем. Есть ли способ узнать? Я запускаю apt-get версию uWSGI 1.0.3-debian через Upstart в Ubuntu 12.04. Сайт работает успешно, кроме того, что похоже на утечку памяти ... отсюда мой взгляд на файл журнала. Я экспериментировал с изменением разрешений всего каталога / opt / для включения пользователя uwsgiuser, но безрезультатно. Я использую сокет TCP, так что разрешения там не должны быть проблемой. Это кеш? У этого есть свои & apos; собственные разрешения? Если да, то где?

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

Мой 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
Это, вероятно, более вероятно, чтобы получить полезный ответ на ServerFault. Amber

Ваш Ответ

2   ответа
8

характерная для Ubuntu:

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

Вы можете обойти проблему, поставив линии

setuid uwsgiuser
setgid uwsgiuser

в файл конфигурации выскочки, и удаливuid а такжеgid настройки из вашей конфигурации uwsgi.

Это полностью сработало; Спасибо огромное. Ошибка сводила меня с ума. bkev
Что такое файл конфигурации upstart?
@uszywielorybaUpstart является заменой инициализации в Ubuntu. Он запускает задания на основе файлов в/etc/init (среди других мест).
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

Похожие вопросы