NGINX и права доступа
Posted: Tue Aug 11, 2015 2:50 pm
Добрый день.
у меня на сервере под управлением VestaCP несколько сайтов под Битриксом.
Всё работает нормально, но с появлением 2-го и 3-го сайта заметил, что сервер иногда падает, начал анализировать логи сайтов (которые чаще всего падали, под падали я имею ввиду отсутствие доступа типа Bad gateway) и заметил такие вот записи:
т.е. nginx не имеет доступа к файлам, а соответственно не отдаёт файлы напрямую - чем, как я думаю грузит сервер
Может я и не прав в этом суждении, но начав копать вопрос почему nginx не имеет доступа наткнулся на то, что запускаясь nginx работает только под пользователем, указанным в /etc/nginx/nginx.conf:
если сайт один, то можно указать пользователя под которым работает сайт и всё работает нормально, но если сайтов несколько...
под пользователями, под которыми работают сайты nginx не имеет доступа к файлам этих сайтов (почему не понимаю ведь права 0644 предоставляют чтение для всех).
начав искать проблему, обнаружил кучу решений под fast-cgi - но это не мой вариант
к примеру http://phpclub.ru/talk/threads/nginx-1- ... ied.78437/
там же указывалось на то, что nginx должен обращаться к файлам с правами под которым он запущен, про права доступа (для fast-cgi):
про группы пользователей:
перезапустил nginx и...
ошибки пропали!!!
отсюда вопрос - может надо чтоб при добавлении и редактировании пользователей в панели не только конфиги прописывались, но ещё и пользователь nginx (или другой под которым запускается nginx) добавлялся в группу пользователя-владельца сайта? (и удалялся если nginx отключается)
Может я в чём-то не прав конечно... - поправьте меня и разъясните.
у меня на сервере под управлением VestaCP несколько сайтов под Битриксом.
Всё работает нормально, но с появлением 2-го и 3-го сайта заметил, что сервер иногда падает, начал анализировать логи сайтов (которые чаще всего падали, под падали я имею ввиду отсутствие доступа типа Bad gateway) и заметил такие вот записи:
Code: Select all
2015/08/11 17:29:25 [crit] 26010#0: *120 open() "/home/user/web/site.com/public_html/robots.txt" failed (13: Permission denied), client: 207.46.13.76, server: user.com, request: "GET /robots.txt HTTP/1.1", host: "user.com"
Может я и не прав в этом суждении, но начав копать вопрос почему nginx не имеет доступа наткнулся на то, что запускаясь nginx работает только под пользователем, указанным в /etc/nginx/nginx.conf:
Code: Select all
user nginx;
под пользователями, под которыми работают сайты nginx не имеет доступа к файлам этих сайтов (почему не понимаю ведь права 0644 предоставляют чтение для всех).
начав искать проблему, обнаружил кучу решений под fast-cgi - но это не мой вариант
к примеру http://phpclub.ru/talk/threads/nginx-1- ... ied.78437/
там же указывалось на то, что nginx должен обращаться к файлам с правами под которым он запущен, про права доступа (для fast-cgi):
Code: Select all
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
и тут я решил добавить пользователя под которым запущен nginx у меня в группу пользователя под которым запущен сайтПроверить, что nginx добавлен в группу или работает от группы www-data.
Code: Select all
usermod -a -G user nginx
ошибки пропали!!!
отсюда вопрос - может надо чтоб при добавлении и редактировании пользователей в панели не только конфиги прописывались, но ещё и пользователь nginx (или другой под которым запускается nginx) добавлялся в группу пользователя-владельца сайта? (и удалялся если nginx отключается)
Может я в чём-то не прав конечно... - поправьте меня и разъясните.