@mvorontcov
Шаман с бубном

Nginx front + apache back. Как настроить под разных пользователей?

Доброе время суток. Пытаюсь настроить связку apache+nginx для увеличения скорости отдачи статики. Однако не работает. Каждый сайт в целях безопасности работает под отдельным пользователем через suexec, соответственно в каждом каталоге права на файлы принадлежат разным пользователям.
<VirtualHost 172.19.2.88:8080>
SuexecUserGroup "#500" "#500"
ServerName username.ru
DocumentRoot /home/gent/public_html
ErrorLog /var/log/virtualmin/username_error_log
</VirtualHost>

Думаю этого куска хватит для понимания.
Далее, я на каждый сайт навешиваю соответствующие конфиги nginx'a:
user nginx;
server {
        listen       80;
        server_name  username.ru

        location / {
            proxy_pass          http://username.ru:8080/;
            proxy_redirect      off;
            proxy_set_header    Host $host;
            proxy_set_header    X-Real-IP $remote_addr;
            proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size 10m;
            proxy_connect_timeout 90;
        }
        location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|rar|tgz|gz|js|bzip2|zip|tar|tiff)$ {
            root /home/username/public_html;
        }
    }

Однако статика не отдаётся
[error] 37187#0: *3 open() "/home/username/public_html/style.css" failed (13: Permission denied)

Если, конечно же, сменить пользователя от имени которого запускается nginx - то всё работает, но только для конкретного пользователя. Остальные сайты по прежнему остаются в ауте. nobody так же не помогло.
Доп. данные:
на все файлы в каталоге public_html установлены права 644 (это относительно статики)
CentOS 7.2
nginx 1.6.3
Вопрос: как заставить работать nginx, и отдавать статику? Я чувствую, что ответ на поверхности, однако с nginx работаю дай Бог раз третий, а гугление на тему nginx + suexec не помогли...
  • Вопрос задан
  • 296 просмотров
Решения вопроса 1
@xtreme
Снимаю порчу по SSH :)
А на директории стоит 755 хотя бы? Если бит запуска не стоит на директориях (на всем пути от корня до статики) -  nginx не сможет получить туда доступ, даже если на файле стоит 644.
И, кстати, почему такой древний nginx? В мейнлайне сейчас 1.9.9, а в 1.6.7 много чего не хватает по сравнению с версиями 1.9...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@mvorontcov Автор вопроса
Шаман с бубном
Спасибо Вам, Юрий. Что то глаз замылился, как то и внимания не обратил.
По поводу версии - то что есть в репозиториях. Подключены epel, remi и rpmforge (помимо стандартных).

UPD: подключил репозиторий nginx, обновился до версии 1.8.0
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы