[django] (13: अनुमति अस्वीकार) अपस्ट्रीम से कनेक्ट करते समय:



Answers

मैंने भी इस समस्या में भाग लिया है। एक अन्य समाधान httpd नेटवर्क कनेक्ट करने के लिए SELinux बूलियन मान को टॉगल करना on (Nginx httpd लेबल का उपयोग करता है)।

setsebool httpd_can_network_connect on

परिवर्तन को जारी रखने के लिए -P ध्वज का उपयोग करें।

setsebool httpd_can_network_connect on -P

आप httpd का उपयोग कर सभी उपलब्ध SELinux बूलियन की एक सूची देख सकते हैं

getsebool -a | grep httpd
Question

मैं nginx और gunicorn के साथ django परियोजना को विन्यस्त करने के साथ काम कर रहा हूँ। जबकि मैं अपने बंदरगाह gunicorn mysite.wsgi:application --bind=127.0.0.1:8001 तक पहुंच रहा gunicorn mysite.wsgi:application --bind=127.0.0.1:8001 nginx सर्वर में gunicorn mysite.wsgi:application --bind=127.0.0.1:8001 मुझे मेरी त्रुटि लॉग फ़ाइल में निम्न त्रुटि मिल रही है।

2014/05/30 11:59:42 [crit] 4075#0: *6 connect() to 127.0.0.1:8001 failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8001/", host: "localhost:8080"

मेरी nginx.conf फ़ाइल

server {
    listen 8080;
    server_name localhost;
    access_log  /var/log/nginx/example.log;
    error_log /var/log/nginx/example.error.log;

    location / {
        proxy_pass http://127.0.0.1:8001;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
    }
}

एचटीएमएल पेज में मुझे 502 Bad Gateway मिल रहा है।

मैं क्या गलती कर रहा हूँ?




Centos 7 पर एक ही समस्या थी। जब मैंने सोरिन द्वारा निर्धारित समाधान लागू करने का प्रयास किया, तो मैंने चक्रों में आगे बढ़ना शुरू कर दिया। सबसे पहले मुझे एक अनुमति {लिखना} अस्वीकार कर दिया गया था। तब जब मैंने हल किया कि मुझे अनुमति है {connectto} अस्वीकार कर दिया गया है। फिर अनुमति के लिए फिर से वापस {लिखना} अस्वीकार कर दिया।

getsebool -a | grep httpd का उपयोग करके झंडे की जांच करने के ऊपर @Sid उत्तर के बाद getsebool -a | grep httpd और उन्हें टॉगलिंग मैंने पाया कि httpd_can_network_connect बंद होने के अतिरिक्त। http_anon_write भी बंद हो गया जिसके परिणामस्वरूप अनुमति अस्वीकार कर दी गई और अनुमति अस्वीकार कर दी गई {connectto}

type=AVC msg=audit(1501830505.174:799183): avc:  
denied  { write } for  pid=12144 comm="nginx" name="myroject.sock" 
dev="dm-2" ino=134718735 scontext=system_u:system_r:httpd_t:s0 
tcontext=system_u:object_r:default_t:s0 tclass=sock_file

सुडो बिल्ली /var/log/audit/audit.log | का उपयोग करके प्राप्त किया गया grep nginx | जैसा कि ऊपर बताया गया है grep अस्वीकार कर दिया।

इसलिए मैंने उन्हें एक समय में एक पर हल किया, एक समय में झंडे को टॉगल कर दिया।

setsebool httpd_can_network_connect on -P

फिर ऊपर @ सोरेन और @ जोसेफ द्वारा निर्दिष्ट आदेश चला रहे हैं

sudo cat /var/log/audit/audit.log | grep nginx | grep denied | 
audit2allow -M mynginx
sudo semodule -i mynginx.pp

असल में आप setsebool पर सेट की गई अनुमतियों की जांच कर सकते हैं और grepp'ing 'audit.log nginx से प्राप्त त्रुटि के साथ, इनकार कर सकते हैं




sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx

sudo semodule -i mynginx.pp



Links