2017-06-11 2 views
0

Après certaines mises à niveau d'Ubuntu 16.04 et modifications de code d'application, mon Flask sur le site Web gunicorn et nginx qui fonctionnait précédemment donne maintenant une erreur de passerelle 502 incorrecte.Flacon avec gunicorn sur erreur de passerelle incorrecte nginx 502

myapp.conf:

upstream app_server_wsgiapp { 
    server localhost:8000 fail_timeout=0; 
} 

server { 
    listen 80; 
    server_name www.myserver.com; 

    access_log /var/log/nginx/www.myapp.access.log; 
    error_log /var/log/nginx/www.myapp.error.log info; 
    keepalive_timeout 5; 

    location /static { 
    autoindex on; 
    alias /myapp/static; 
    } 

    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_wsgiapp; 
     break; 
    } 
    client_max_body_size 2097152; 
    #to get around upstream sent too big header while reading response header from upstream error 
    proxy_buffer_size   128k; 
    proxy_buffers    4 256k; 
    proxy_busy_buffers_size 256k; 
    } 

    # this section allows Nginx to reverse proxy for websockets 
    location /socket.io { 
    proxy_pass http://app_server_wsgiapp/socket.io; 
    proxy_redirect off; 
    proxy_buffering off; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "Upgrade"; 
    } 
} 

/var/log/nginx/myapp.error.log

2017/06/11 06:42:52 [error] 31054#31054: *1 connect() failed (111: Connection refused) while connecting to upstream, client: clientip, server: www.myserver.com, request: "GET/HTTP/1.1", upstream: "http://127.0.0.1:8000/", host: "www.myapp.com" 

Mes applications fichier journal Je note que Flask obtient une partie du chemin à travers départ haut, puis redémarre dans une boucle d'échec/redémarrage continu.

Avez-vous des idées sur la façon de résoudre ce qui pourrait causer ce problème?

+1

Comment avez-vous démarré le service du flacon? Avez-vous essayé d'exécuter le service de flacon en mode interactif et de vérifier la sortie de la console? – hzm

+0

@hzm Je déploie et lance flask via un script déployable ansible qui configure gunicorn puis utilise le superviseur pour redémarrer nginx. Il est non-trivial de commencer cette configuration de flacon manuellement sur le serveur, va continuer à pirater – proximacentauri

+0

@ hzm vous êtes une légende, pouvez-vous mettre votre commentaire dans une réponse s'il vous plaît - en démarrant manuellement l'application sur le serveur que j'ai ramassé problème de dépendance et l'application était à chaque fois, puis le superviseur était juste en train de le redémarrer. Tout fixe maintenant – proximacentauri

Répondre

1

On dirait que le problème est dû à une erreur d'exécution de l'application flask. Pourriez-vous s'il vous plaît essayer d'exécuter l'application de manière interactive? Avec les mêmes paramètres et paramètres d'environnement de façon démon et vérifiez si le service peut être démarré correctement?