[nginx et flask] Erreur "502 Bad Gateway" à cause d'un subprocess
Bonjour,
J'ai une application Flask "appli.py", sur laquelle j'ai récemment dû ajouter la commande suivante, pour créer fichier.pdf à partir de fichier.tex:
Code:
subprocess.call('pdflatex fichier.tex',shell=True)
Tout fonctionne parfaitement quand je lance appli.py de façon autonome en mode déboguage, mais ça ne fonctionne plus lorsque je bascule l'application sur nginx : le navigateur me renvoie alors une erreur "502 Bad Gateway", et le fichier nginx/error.log mentionne l'erreur suivante : "upstream prematurely closed connection while reading response header from upstream".
Ma configuration nginx.conf est la suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| events {
worker_connections 768;
multi_accept on;
}
http {
limit_req_zone $binary_remote_addr zone=flood:10m rate=5r/s;
limit_req zone=flood burst=30 nodelay;
limit_conn_zone $binary_remote_addr zone=ddos:10m;
limit_conn ddos 1;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
} |
Mon fichier appli.service est ainsi configuré :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| [Unit]
Description=uWSGI instance to serve appli
After=network.target
[Service]
User=user
Group=www-data
WorkingDirectory=/home/user/appli
Environment="PATH=/home/user/appli/applienv/bin"
ExecStart=/home/user/appli/applienv/bin/uwsgi --ini appli.ini
[Install]
WantedBy=multi-user.target |
Enfin, mon fichier appli.ini est ainsi configuré :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [uwsgi]
module = wsgi:app
master = true
processes = 2
close-on-exec = true
close-on-exec2 = true
socket = appli.sock
chmod-socket = 770
chmod = 770
vacuum = true
die-on-term = true |
Je n'arrive pas à identifier les causes de ce bug, mais ça ressemble à un problème de permissions...
Merci d'avance pour votre aide !