nginx в Ubuntu: Отказано в доступе

nginx в Ubuntu: Отказано в доступе

Я новичок в системном администрировании. После установки nginxчерез марионеткуна Ubuntu я получаю следующий вывод:

[alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)

[warn] 1898#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1

[emerg] 1898#0: open() "/var/log/nginx/access.log" failed (13: Permission denied)

Как избавиться от всех этих сообщений?

Я не хочу использовать командную строку напрямую (chown / chmod) и повторять это каждый раз, когда создаю новый сервер. Поэтому я думаю о том, что нужно добавить в манифест puppet.

Какова лучшая практика системного администратора в этом случае: изменить владельца/разрешения для /var/log/nginx или хранить логи в другом месте? Если chown/chmod — это выход, какие конкретные разрешения обеспечат наивысший уровень безопасности?

Я попробовал это, но это не помогло:

  file { '/var/log/nginx':
    ensure  => directory,
    mode    => '0755',
    owner   => 'www-data',
    group   => 'www-data',
    recurse => true
  }

Отредактировано:

vagrant@precise64:~$ ps aux | grep [n]ginx
root      1001  0.0  0.1  62908  1388 ?        Ss   08:47   0:00 nginx: master process /usr/sbin/nginx
www-data  1002  0.0  0.1  63260  1696 ?        S    08:47   0:00 nginx: worker process
www-data  1003  0.0  0.1  63260  1696 ?        S    08:47   0:00 nginx: worker process
www-data  1004  0.0  0.1  63260  1696 ?        S    08:47   0:00 nginx: worker process
www-data  1005  0.0  0.1  63260  1696 ?        S    08:47   0:00 nginx: worker process

vagrant@precise64:~$ sudo chown -R www-data:www-data /var/log/nginx;
vagrant@precise64:~$ sudo chmod -R 755 /var/log/nginx;
vagrant@precise64:~$ ls -l /var/log/nginx/
-rwxr-xr-x 1 www-data www-data 214 Sep 10 11:07 error.log

решение1

этотмогли бы вам помочь.

Сообщения, которые вы получаете, связаны с тем, что вы запустили nginx как не-root пользователь или без использованиясудо.

Чтобы избавиться от ошибки log dir, вам нужно проверить, от имени какого пользователя запущен nginx, и предоставить соответствующие права для этой папки (ваше правило puppet, возможно, предоставило права не той папке).

Предупреждающее сообщение, о котором вы сообщили, вызвано тем фактом, что (как указано в предупреждении) директива «user» предназначена для использования ТОЛЬКО в том случае, если ваш главный процесс nginx запущен от имени root.

решение2

Я знаю, что прошло много времени, но обычно это связано с SELinux. Попробуйте установить его в режим permissive, и, вероятно, все будет работать нормально.

Связанный контент