2016-09-30 4 views
0

Ich versuche, eine Django-Instanz auf ec2 bereitzustellen. Ich verwende eine Kombination aus Nginx und Gunicorn, um das zu erreichen. Ich habe die nginx intance und gunicorn richtig gestartet und bin in der Lage, meine Instanz zum Laufen zu bringen. Aber wenn ich versuche, ein Bild in die Datenbank auf meiner Anwendung zu laden betreiben ich in diesen Fehler in meinem gunicorn error.log:connect() fehlgeschlagen (111: Verbindung abgelehnt), während die Verbindung zum Upstream, Client

connect-failed-111-Anschluss-verweigern-while-Anschluss-to-Upstream

Auch alle meine API-Aufrufe vom Frontend an die Datenbank geben einen 500 internen Server in der Konsole zurück. Mein nginx.conf sieht aus wie

default_type  application/octet-stream; 

# Load modular configuration files from the /etc/nginx/conf.d directory. 
# See http://nginx.org/en/docs/ngx_core_module.html#include 
# for more information. 
include /etc/nginx/conf.d/*.conf; 
include /etc/nginx/sites-enabled/*; 
include /etc/nginx/sites-available/*; 
index index.html index.htm; 

server { 
    listen  127.0.0.1:80; 
    listen  [::]:80 default_server; 
    server_name 127.0.0.1; 
    root   /usr/share/nginx/html; 

    # Load configuration files for the default server block. 
    include /etc/nginx/default.d/*.conf; 

    location/{ 
    } 

    # redir 

Und meine sites-enabled/default-Datei als

upstream app_server_djangoapp { 
server 127.0.0.1:8000 fail_timeout=0; 

}

Server { # EC2-Instanz Sicherheitsgruppe konfiguriert werden muss http-Verbindungen zu akzeptieren über Port 80 hören 80; Servername myec2isntance.com;

access_log /var/log/nginx/guni-access.log; 
error_log /var/log/nginx/guni-error.log info; 

keepalive_timeout 5; 

# path for static files 
location /static { 
    alias xxxxxx; 
} 
location /media { 
    alias xxxxxx; 
} 
location/{ 
location/{ 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 

    if (!-f $request_filename) { 
     proxy_pass http://app_server_djangoapp; 
     break; 
    } 
} 

}

Ich habe versucht, die meisten Dinge, die Menschen darüber gesprochen - das Hinzufügen Recht permissisons auf die Ordner. Ich ändere localhost zu 127.0.0.1 usw. Ich bin relativ neu in diesem Thema, also jede Hilfe würde sehr geschätzt werden!

Danke

Antwort

0

ich standardmäßig dies ändern würde vorschlagen:

upstream app_server_djangoapp { 
server 127.0.0.1:8000 max_fails=3 fail_timeout=50; 
keepalive 512; 
} 

-

keepalive_timeout 5; 

entfernen - warum tun u zwei Standort/Blöcke?

location/{ 
    location/{ 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 

    if (!-f $request_filename) { 
     proxy_pass http://app_server_djangoapp; 
     break; 
    } 
} 
+0

Hoppla! Habe die doppelten Lageblöcke nicht bemerkt. Ich habe es losgeworden. Jetzt sehe ich nichts in den Protokollen, aber ich sehe den 500-Internal-Server-Fehler jedes Mal, wenn ich einen POST-Anruf vom Frontend mache. –

+0

Das ist Fortschritt. Was ist der Trace beim Ausführen von Djangos Dev-Server? Wenn der Upload länger als 30 Sekunden dauert, wird Gunicorn ebenfalls eine Zeitüberschreitung verursachen. Sie müssen '--timeout 120' (2min) in Ihrem gunicorn Kommando verwenden –

Verwandte Themen