Я пытаюсь настроить свой веб-сервис Flask + uWSGI + Nginx на экземпляр AWS EC2, на котором работает Ubuntu 18.04.Nginx получает ошибку разрешения при подключении к сокету uWSGI:
connect() to unix:/home/myuser/myserv/myserv.sock failed (13: Permission denied) while connecting to upstream
Настройка:
- Пользователь приложения:
myuser
(домашний каталог: /home/myuser/
) - Приложение:
myserv
(установочный каталог: /home/myuser/myserv/
, лог-каталог: /home/myuser/myserv/log/
) - Разъем uWSGI:
/home/myuser/myserv/myserv.sock
- Пользователь Nginx:
www-data
для рабочего процесса,root
для основного процесса - Пользователь приложения
myuser
также добавлен в группу www-data
- Сходства, общие для домашнего каталога пользователя приложения, каталога установки приложения и каталога журнала и сокета uWSGIфайл:
- то же владение: myuser: www-data
- то же разрешение: 760 для dir, 660 для сокета file
Наблюдения отустранение неполадок:
- Nginx может записать вышеуказанную ошибку в журнал приложения dir
/home/myuser/myserv/log/
. - SELinux по умолчанию отключен.
- Если расположение файла сокетаизменено на
/tmp/myserv.sock
, проблема исчезает. - Потеря разрешения сокета с 660 до 666 не помогает.
Есть несколько предложенийпри поиске в Интернете, но они кажутся неприменимыми в моем случае :
- Либо файл сокета, либо любой из содержащихся в нем каталогов не имеет прав / прав владения>> void by observatioon # 1, # 3 и # 4
- Возможно, SELinux блокирует Nginx от чтения файла сокета >> не относится к наблюдению # 2
- Nginx и uWSGI должны работать одинаковопользователь и та же группа >> аннулировано наблюдением # 3
Есть идеи, что не так с моей настройкой? Спасибо.