proxy_pass не работает, когда SELinux включен, почему?
У меня есть приложение, прослушивающее порт 8081 и Nginx, работающее на порту 8080. Заявление о передаче прокси выглядит так:
$ cat /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
Это система с поддержкой CentOS 7.0 SELinux. Если яsetenforce 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.