2016-07-09 13 views
0

Ich habe eine Django-App, die von gunicorn mit nginx bearbeitet wird und eingehende Anfragen bearbeitet. Statische Dateien werden gut verarbeitet und Mediendateien werden in meiner lokalen Entwicklungsumgebung geliefert. Ich habe MEDIA_ROOT und MEDIA_URL eingestellt.Django, nginx, + gunicorn: Verbindung verweigert beim Versenden von Mediendateien

Auf meinem Webhost (Ubuntu 14.04 ausgeführt) werden jedoch keine Mediendateien bereitgestellt. Selbst wenn ich die Django Dev-Server, anstatt dass laufen gunicorn die App dienen, Mediendateien nicht zeigen und die folgenden Fehler sind auf der Konsole:

Chrome dev console output

Seit er aus der Gleichung ergibt gunicorn in das gleiche Verhalten, ich glaube, das Problem ist mit meiner Nginx-Konfiguration. Das ist mein sites-available für die App:

server { 
listen 443 ssl; 

server_name <server name here>; 

<ssl stuff here> 

access_log off; 

location /static { 
    alias /opt/testenv/testenv/proj/static/; 
} 

location /media { 
    autoindex on; 
    alias /opt/testenv/testenv/proj/media/; 
} 

location ~ /.well-known { 
    allow all; 
} 

location/{ 
    proxy_pass http://127.0.0.1:9900; 
    proxy_set_header X-Forwarded-Host $server_name; 
    proxy_set_header X-Real-IP $remote_addr; 
    add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"'; 
} 
} 

server { 
listen 80; 
server_name <server name here>; 
return 301 https://$host$request_uri; 
} 

Ich war zunächst die location /media Block fehlt, was ich dachte, war das Problem. Aber selbst nach dem Hinzufügen, dem Neustart von nginx und dem Ausführen von collectstatic erhalte ich immer noch CONNECTION REFUSED Fehler beim Abrufen der Dateien.

Ich habe Autoindex aktiviert, um zu überprüfen, dass die Dateien zu manuell navigiert werden können, und das funktioniert.

Das Nginx-Fehlerprotokoll enthält nichts im Zusammenhang mit diesen Verbindungsfehlern, was für mich seltsam ist - könnte die Anfrage an anderer Stelle zurückgewiesen werden? Ich habe vor kurzem HTTPS eingerichtet, aber dieses Problem trat bereits davor auf.

Antwort

2

Sieht aus wie Sie Anfragen direkt an gunicorn statt nginx machen, von Ihnen besuchten Konfiguration sollte:

https://127.0.0.1 

statt:

http://127.0.0.1:9900 
+0

Also, ich brauche die 9900 da, dass der Port ist Gunicorn hört zu. Dein Punkt zu den Anfragen war jedoch gültig - es stellte sich heraus, dass dies ein Problem mit einer Django-Einstellung war, also lag ich falsch damit, dass es mit meiner nginx-Konfiguration zusammenhing. Ich musste meine MEDIA_URL von '/ media /' in 'https: // /media' ändern – dkhaupt

Verwandte Themen