Разрешение отклонено с nginx и nfs

У меня есть два RHEL 7 машин.

Я установил nginx и php-fpm и устанавливаю nfs, монтируются. Я могу чтение-запись к nfs монтироваться без проблем, и у меня есть другой сервер приложений (Apache Geronimo), который может считать запись в него.

Когда я установил nginx, он устанавливает nginx пользователя, которого я создал на файловом сервере NFS с тем же uid и ценурозом.

Я могу перечислить файлы на клиенте nfs, монтируют использование nginx пользователя. Однако, когда я пытался подать статический HTML или динамические php файлы с помощью nginx от nfs, я получаю ошибку разрешения:

*5 stat() "/usr/depot/repository/test.php" failed (13: Permission denied)
*5 open() "/usr/depot/repository/test.html" failed (13: Permission denied)

Кроме того, я создал папку под/usr/depot/testing с теми же полномочиями (просто не была nfs), и это работало просто великолепно.

Вот монтирующаяся информация о клиенте.

xxx.xxx.xxx.xxx:/mnt/repository on /usr/depot/repository type nfs4 (rw,nosuid,nodev,noexec,relatime,vers=4.0,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=xxx.xxx.xxx.xxx,local_lock=none,addr=xxx.xxx.xxx.xxx)

Я не вижу ничто плохого с этой установкой, таким образом, я в замешательстве относительно того, почему nginx не может считать файлы из доли nfs.

Обновление

Хорошо я просто отключил перезагрузку SELinux, и это зафиксировало ее. Теперь вопрос состоит в том, как я настраиваю SELinux так, чтобы nginx мог получить доступ к удаленному серверу.

0
задан 18 February 2015 в 05:36
2 ответа

В RHEL 7 те же политики SELinux, которые применяются к Apache, также применяются к nginx. Таким образом, вы можете использовать те же логические значения:

httpd_use_nfs                  (off  ,  off)  Allow httpd to use nfs

Установите правильное логическое значение, чтобы разрешить веб-серверу использовать NFS.

setsebool -P httpd_use_nfs 1
5
ответ дан 4 December 2019 в 11:10

Поскольку это первый результат в Google для этой проблемы, я решил добавить свое решение.

В моем случае SELinux был отключен, так что это не так. Моя проблема заключалась в том, что php-fpm работал как apache. Итак, на моих веб-серверах CentOS 7 (при условии, что вы создали пользователя nginx на файловом сервере в соответствии с OP) я меняю пользователя и группу на nginx в /etc/php-fpm.d/www.conf и перезапускаю php-fpm.

2
ответ дан 4 December 2019 в 11:10

Теги

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