2016-08-14 1 views
0

У меня возникли проблемы с настройкой моей основной бродящей виртуальной машины для обслуживания некоторого контента. Nginx заявляет, что у него нет разрешения на обслуживание индекса для моей папки проекта. Я попытался установить все разрешения 777 для каталога проекта и изменить пользователя Nginx на бродягу.403 разрешение отказано nginx, бродяга, centos

Я не уверен, но от чтения вокруг, по-видимому SELinux может вызывать проблемы, поскольку она включена на сервере и есть строки в /var/log/audit/audit.log так:

type=AVC msg=audit(1471185070.388:854): avc: denied { getattr } for pid=4653 comm="nginx" path="/var/www/project/index.html" dev="0:37" ino=12161210 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:nfs_t:s0 tclass=file 

Моя конфигурация Nginx выглядит следующим образом:

server { 
    listen 80 default_server; 
    server_name knifesprinter.local; 
    index index.html; 

    location /{ 
     root /var/www/project; 
     autoindex on; 
    } 

    error_page 404    /404.html; 
    location = /404.html { 
    root /usr/share/nginx/html; 
    } 

    error_page 500 502 503 504 /50x.html; 
    location = /50x.html { 
     root /usr/share/nginx/html; 
    } 
} 

И все разрешения для /var/www/project разрешены. Кто-нибудь знает, что сделка здесь? Я установил несколько серверов с Nginx раньше, но не на CentOS 7

ответ

1

Yip, определенно проблема SELinux. Пожалуйста, не отключите SELinux, установив принудительное выполнение на 0. Вы можете разрешить доступ Nginx с помощью audit2allow. Это создаст политику для вас, которую вы можете применить, используя semodule. Вам необходимо запустить следующее: root. Вы можете использовать команды, но вы столкнетесь с проблемой с semodule.

Во-первых, если ваша система не имеет audit2allow:

yum install policycoreutils-python 

Далее создайте политику:

grep httpd /var/log/audit/audit.log | audit2allow -M mypol 

Затем примените политику:

semodule -i mypol.pp 

это стоит отметить, что audit2allow может предоставить больше доступа, чем необходимо. Если вы согласны с этим, в некоторых случаях вы также можете использовать restorecon or chcon.

Надеюсь, это поможет.

+0

Да, он не чувствовал себя правильно, просто отключив это полностью, используя grep http не работал по какой-то причине, однако мне пришлось использовать audit2allow -a -M после загрузки страницы. – jwtea

+0

А, я вижу. Спасибо что подметил это. Может быть полезно в будущем. –