Ich habe eine Django App läuft auf Nginx und Gunicorn, Innerhalb der App habe ich eine clients.py
Datei mit einer Methode, die Post-Daten von externen Servern empfängt und verarbeitet, die Django-URL zugeordnet auf das VerfahrenWeitergabe von Daten von Nginx nach Django Methode
url(r'^client/client_request/$', clients.externalclient)
der externe Server veröffentlicht keine Daten ist, wenn es 200 OK-Antwort von meinem Server. kann ich Daten in nginx Protokoll geschrieben log aber können sie auf meine Methode in django app nicht fangen, hier ist meine Nginx Config
server{
listen 80;
server_name 00.00.000.000;
error_log /var/log/nginx/error.log;
large_client_header_buffers 4 16k;
# Tell nginx to ignore favicon
location = /favicon.ico { access_log off; log_not_found off; }
location/{
proxy_pass http://127.0.0.1:8000/;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
}
location /assets/ {
autoindex on;
alias /var/www/html/dev2_assets/;
}
location client/client_post/{
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
keepalive_requests 10;
keepalive_timeout 75s;
proxy_redirect http://00.00.000.00/ /client/client_post;
}
}
und hier wird die django-Methode, die Post-Anforderung
from django.http import HttpResponse
def externalclient(request):
if request.method == 'POST':
print "Request received"
else:
print "Method not allowed"
erhält
Bitte jeder, der den Fehler sehen kann, wird geschätzt. Vielen Dank.
So Einbuchtung ist OK? Machen Sie den nächsten Schritt - ersetzen Sie Ihre 'print's mit' return HttpResponse ("Request received") ' – Ingaz
Ja die Indentation ist in Ordnung, Dies ist, was ist' [22/Dec/2017 02:08:47] "POST/Client/client_post/HTTP/1.0 "302 0' – Peter88tom
Das ist für mich sinnlos. 302 ist Umleitung. Sie legen eine explizite in Ihrem nginx, um alles um 0.0.0.0 umzuleiten. Was versuchst du wirklich? Sie können das indirekte von/innerhalb von Django tun, wo es viel einfacher liest. –