2016-05-23 16 views
0

ich keine Antwort von ngix(nginx + uwsgi + django). nginx-Server ermöglicht es nicht, die Anforderung den uwsgi Server zu treffen

nginx Protokolle bekommen

2016/05/23 15:19:49 [Fehler] 9019 # 0: * 3 Upstream-Zeitüberschreitung (110: Zeitüberschreitung der Verbindung) beim Lesen des Response-Headers von Upstream, Client: 122.171.107.80, Server: 54.169.34.178, Anforderung: "GET/HTTP/1.1", Upstream: "uwsgi://127.0.0.1:8000 ", host:" 54.169.34.178 "

Zuvor war ich nur mit uwsgi server, jetzt möchte ich nginx an der Front so hinzufügen t Hat es die statischen Daten dienen können und als API-Gateway fungieren.

Ich versuche, diese tutoriall zu verwenden. Ich konnte den uwsgi Server separat laufen und wenn ich es mit nginx kombiniere, funktioniert es nicht.

Kann mir bitte jemand helfen?

user www-data; 
worker_processes 4; 
pid /run/nginx.pid; 

events { 
    worker_connections 768; 
    # multi_accept on; 
} 

http { 

    ## 
    # Basic Settings 
    ## 

    sendfile on; 
    tcp_nopush on; 
    tcp_nodelay on; 
    keepalive_timeout 65; 
    types_hash_max_size 2048; 
    # server_tokens off; 

    # server_names_hash_bucket_size 64; 
    # server_name_in_redirect off; 

    include /etc/nginx/mime.types; 
    default_type application/octet-stream; 

    ## 
    # Logging Settings 
    ## 

    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 

    ## 
    # Gzip Settings 
    ## 

    gzip on; 
    gzip_disable "msie6"; 

    # gzip_vary on; 
    # gzip_proxied any; 
    # gzip_comp_level 6; 
    # gzip_buffers 16 8k; 
    # gzip_http_version 1.1; 
    # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; 

    ## 
    # nginx-naxsi config 
    ## 
    # Uncomment it if you installed nginx-naxsi 
    ## 

    #include /etc/nginx/naxsi_core.rules; 

    ## 
    # nginx-passenger config 
    ## 
    # Uncomment it if you installed nginx-passenger 
    ## 

    #passenger_root /usr; 
    #passenger_ruby /usr/bin/ruby; 

    ## 
    # Virtual Host Configs 
    ## 

    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 
} 


#mail { 
# # See sample authentication script at: 
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript 
# 
# # auth_http localhost/auth.php; 
# # pop3_capabilities "TOP" "USER"; 
# # imap_capabilities "IMAP4rev1" "UIDPLUS"; 
# 
# server { 
#  listen  localhost:110; 
#  protocol pop3; 
#  proxy  on; 
# } 
# 
# server { 
#  listen  localhost:143; 
#  protocol imap; 
#  proxy  on; 
# } 
#} 

sites-enabled/*. Conf

`` `

upstream testing { 
server 127.0.0.1:8000; 
} 

server { 
listen  80; 

    server_name 54.169.34.178 
    charset  utf-8; 

    # max upload size 
    client_max_body_size 75M; # adjust to taste 


    location/{ 
     uwsgi_pass testing; 
     include  /home/ubuntu/testDjango/testWeb/uwsgi_params; 
    } 

}

` ``

+0

diese Fehlermeldung angezeigt wird sich ändern müssen, während nginx statische Inhalte zu dienen versucht, oder während es Proxying zu Ihr uwsgi-Server? – avichalp

+0

Momentan sende ich keinen statischen Inhalt separat. Ich versuche nur, die Homepage zu bekommen, die alle notwendigen Seiten in der einzigen Datei hat – zakir

+0

http://54.169.34.178:8000/ funktioniert gut für mich, auf dem ich uwsgi laufen. Ich versuche, es durch http://54.169.34.178/, aber es funktioniert nicht – zakir

Antwort

0

Gemäß der Konfiguration und Details Ihnen geteilt Es scheint, als ob du den uwsgi server verwendest, der an 0.0.0.0 gebunden ist (becau Sie können hier auf 54.169.34.178:8000 zugreifen, während Sie in Ihrer Nginx-Konfiguration den Upstream auf 127.0.0.1 setzen. Aus diesem Grund kann Nginx Ihre Anwendung nicht erreichen.

Ich würde vorschlagen, dass Sie Ihre Anwendung auf 127.0.0.1 ausführen, indem Sie den folgenden Befehl uwsgi --http 127.0.0.1:8000 --module testWeb.wsgi

jetzt versuchen, den Zugang http://54.169.34.178/ von Ihrem Browser.

+0

Ich bekomme den gleichen Fehler, jetzt kann ich nicht mehr die uwsgi selbst zeigen. Als ich Ipadderess versuchte: 8000/- Es funktioniert nicht. Und Nginx wirft den gleichen Fehler. – zakir

+0

hast du 'uwsgi --http 127.0.0.1:8000 --module testWeb.wsgi 'versucht. Hier ist IP-Adresse keine IP-Adresse, aber Sie localhost, d. H. 127.0.0.1? – avichalp

+0

Ja, das habe ich gemacht (uwsgi --http 127.0.0.1:8000 --module testWeb.wsgi). Ich renne in ec2 und versuche nur, http://54.169.34.178:8000/- zu treffen, und mache ich hier irgendetwas falsch? – zakir

0

uwsgi_pass ist nicht HTTP-Protokoll aber uwsgi Protokoll, das Socket akzeptieren nicht

http wenn Sie uwsgi_pass Sie testen es erwartet Buchse, so dass Sie Ihre uwsgi in Socket-Modus und überprüfen Sie die Berechtigungen für sie arbeiten müssen (nginx sollte in der Lage sein lesen, schreiben auf diese Datei)

, wenn Sie es im Hafen halten wollen und http Sie die uwsgi_pass in proxy_pass

Verwandte Themen