У меня есть приложение, прослушивающее порт 8081 и Nginx, запущенный на порту 8080. Заявление прокси-сервера выглядит так:
/var/etc/opt/lj/output/services/abc.servicemanager.conf
location /api/abc.servicemanager/1.0 { proxy_pass http://localhost:8081;}
В nginx.conf я включаю этот файл как:
include /etc/nginx/conf.d/services/*.conf;
/etc/nginx/conf.d/service является символической ссылкой:
# ll /etc/nginx/conf.d/
lrwxrwxrwx. 1 root root 39 Dec 10 00:19 services -> ../../../var/etc/opt/lj/output/services
Это система Centon 7.0 SELinux Enabled. Если я установлю 0 и сделаю это Допустимым, я не вижу никаких проблем. Таким образом, файл находится в нужном месте и проблем с путями нет. Если SELinux работает, я вижу следующее в журнале аудита:
type=AVC msg=audit(1418348761.372:100930): avc: denied { getattr } for pid=3936 comm="nginx" path="/var/etc/opt/lj/output/services/abc.servicemanager.conf" dev="xvda1" ino=11063393 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:var_t:s0 tclass=file
Я хочу знать, как включить Nginx для поиска файла conf без отключения SELinux. Благодарим вас за помощь.
-Vijay