Я настраиваю веб-приложение django с помощью Nginx + Gunicorn. Я также использую экземпляр Amazon linux, основанный на дистрибутиве CentOS. Предполагая, что Nginx работает с пользователем nginx, что лучше всего использовать для корневой папки документов? Теперь я создал папку / var / www / myapp, которая принадлежит пользователю root. Но я думаю, что загрузка файлов не будет работать, например, потому что nginx не может создавать файлы в этой папке. Достаточно ли передать владение пользователю nginx?
Обычно я использую пользователя «www-data» в Debian, но я думаю, что в CentOS есть пользователь «apache». Вы всегда можете использовать этого пользователя или создать «www-data» или «nginx».
(Примечание: в примерах ниже www-user может быть любым пользователем, которого вы выберете для настройки).
В nginx conf установите пользователя
пользователь www-user www-user; ## По умолчанию: никто
Обновите владельца корня www для вашего www-пользователя (и убедитесь, что у www-пользователя есть разрешения на чтение / запись, как того требует ваш веб-сайт).
Настоящий вопрос в том, на каком пользователе установлен Gunicorn.
Чтобы упростить все, вы можете сделать всю папку / var / www / myapp (и файлы + childes) принадлежащими пользователю gunicorn.
Или все может принадлежать третьему пользователю, и только определенные папки могут принадлежать «gunicorn». Эти папки будут использоваться для загрузки, кеширования и т.д. Разработчик должен знать, какие папки должны быть доступны для записи.