UWSGI + NGINX 502 Bad Gateway

Ich habe eine Web.py App und wollte es in die Produktion schieben. Wie von der Web.py Community empfohlen, habe ich beschlossen, uWSGI und Nginx dafür zu benutzen.

Meine App verwendet Memcached für Session Storage und MySQL für andere Speicheraufgaben. Die App funktioniert gut auf meinem MacBook. Ich habe das UWSGI + Nginx-Setup vorher konfiguriert Aber ich kenne ein 502 Bad Gateway, wenn ich versuche, auf die Index-Seite auf meinem Ubuntu-Server zuzugreifen. ABER: Beim Betreten einer anderen Seite bekomme ich den ganzen Inhalt, den ich wollte. Im Allgemeinen funktioniert die App in der Ubuntu-Umgebung gut, wie ich es getestet habe, indem ich python app.py 8080 . Ich konnte die Seite.tld: 8080 / eingeben und alle Inhalte erhalten.

Meine uWSGI config:

 [uwsgi] gid = www-data uid = www-data vhost = true plugins = python logdate #socket = /tmp/uwsgi_vhosts.sock socket = 127.0.0.1:3031 master = true processes = 1 harakiri = 120 limit-as = 128 memory-report no-orphans 

Die Nginx config:

 server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; # Make site accessible from http://localhost/ server_name page.tld; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:3031; # This is the absolute path to the folder containing your application uwsgi_param UWSGI_CHDIR /var/www/page.tld/apps; # This is actually not necessary for our simple application, # but you may need this in future uwsgi_param UWSGI_PYHOME /var/www/page.tld/apps; # This is the name of your application file, minus the '.py' extension uwsgi_param UWSGI_SCRIPT test; } 

Ich bekomme immer diese Zeilen im vhosts.log von uWSGI:

 libgcc_s.so.1 must be installed for pthread_cancel to work - DAMN ! worker 1 (pid: 1281) died, killed by signal 6 :( trying respawn ... - Respawned uWSGI worker 1 (new pid: 1330) Please let me know if you need to see other parts of the configuration. 

Und diese Zeilen in der error.log von nginx:

 [error] 1233#0: *1 upstream prematurely closed connection while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: page.tld, request: "GET / HTTP/1.1", upstream: "uwsgi://127.0.0.1:3031", host: "page.tld" 

Lassen Sie mich wissen, wenn irgendwelche anderen Protokolle benötigt werden, um dies zu lösen.

Update: Es scheint, dass ich 502 Bad Gateway bekomme, wenn ich auf eine Seite zugreifen möchte, die Dinge aus der MySQL Datenbank laden muss. Aber da es ohne uWSGI & NGINX funktioniert, denke ich, dass nginx die uwsgi-Instanz aus irgendeinem Grund tötet, wenn es versucht, Dinge aus der Datenbank zu laden.

One Solution collect form web for “UWSGI + NGINX 502 Bad Gateway”

Ich habe vor kurzem dieses Problem behoben, indem ich eine höhere Speichergrenze innerhalb der uwsgi setze. Du musst den uwsgi neu starten. Ich laufe uwsgi Kaiser beim Start. Also, in meinem Fall habe ich neu gestartet.

 [uwsgi] ... limit-as = 512 

System:

  • Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-43-generic x86_64)
  • mysqlclient==1.3.6
  • Warum bekomme ich einen KeyError?
  • Rendering von Zeilenumbrüchen in vom Benutzer übermittelten Inhalt (Python Web App)
  • Vererbung in web.py?
  • Web-App startet viele Male - web.py
  • Beenden eines uwsgi-Arbeiters programmgesteuert
  • Wie kann man die Sitzungsdaten im automatisierten Test initialisieren? (Python 2.7, webpy, nosetests)
  • Einschließlich Skript funktioniert nicht in web.py
  • Webpy: Wie man JSON bedient?
  • InternalError: aktuelle Transaktion wird abgebrochen, Befehle werden bis zum Ende des Transaktionsblocks ignoriert
  • Python Extrahieren von Binärdateien aus einer POST-Anforderung mit web.py
  • Hochladen & Encoding .xls Datei Python Web.py
  • Python ist die beste Programmiersprache der Welt.