Я использую Django с nginx/uWSGI. Я должен обслуживать файлы с монтировки, которая используется в определенной учетной записи службы, mybic
, имеет доступ для чтения, поэтому мне пришлось изменить nginx пользователь из:
user nginx;
к
user mybic dbhi_bic;
Это привело к тому, что мое веб-приложение Django зависло и умерло.
Вот ошибки:
Fri Mar 24 15:37:36 2017 - SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected) on request /foo/bar/ (ip 123.45.67.890) !!!
Fri Mar 24 15:37:36 2017 - uwsgi_response_write_body_do(): Broken pipe [core/writer.c line 331] during GET /foo/bar/ (123.45.67.890)
IOError: write error
Я предполагаю, что это какая-то ошибка разрешений, но я не уверен, какие каталоги и файлы пользователь nginx
обычно пишет на то, о чем мне нужно беспокоиться.
ОК, это вызвано первоначальным созданием /var/lib/nginx
как каталог с разрешениями 700. Его необходимо настроить вручную, чтобы nginx мог правильно работать как новый пользователь.
chown -R mybic:dbhi_bic /var/lib/nginx/