По умолчанию, когда мы запускаем Nginx в качестве root
, например sudo nginx ...
, Nginx начнет мастер-процесс на root
и прослушает один или несколько HTTP-портов, но по соображениям безопасности он начнет несколько рабочих процессов пользователем nobody
. Эти рабочие процессы будут обрабатывать входящие запросы. Мы можем проверить это бегом
UPDATE: изменение ps -ef
к ps aux
, потому что когда на MacOSX/FreeBSD ps -ef
не показывает пользователю
$ ps aux | grep nginx
В вашем случае, поскольку пользователь nobody
не имеет разрешения на доступ/Users/matt/Dev, поэтому мы получим ошибку разрешения при доступе к соответствующему местоположению.
Чтобы исправить это, мы можем попробовать любой из
- определяют пользователя в nginx.conf, например,
user matt;
OR
- установить разрешение доступа/Пользователи/матовый/Dev. Обратите внимание, что нам также необходимо убедиться, что у пользователя нет разрешения на поиск (а именно, x-разрешение) для доступа ко всем каталогам в префиксе пути имени пути, например./Users,/Users/matt,/Users/matt/Dev, и имеет разрешение на чтение/Users/matt/Dev и его дочерние файлы.
Недостаточно. Это будет нужно «autoindex», как я написал в своем ответе. – uzsolt
@uzsolt Я не думаю, что включение 'autoindex' является хорошим выбором, если мы просто не установим сайт для загрузки, потому что он часто небезопасен и может привести к утечке некоторых частных источников или db-конфигураций. BTW Если в файле '/ Users/matt/Dev' нет файла index.html, используйте директиву' index' для определения файлов индекса по умолчанию, например. 'index my-index-file.html;' можно найти более подробную информацию http://nginx.org/en/docs/http/ngx_http_index_module.html#index – xfeep
Да, еще один вариант - создать индексный файл. Но только разрешения (как указано в вашем ответе) недостаточно. – uzsolt