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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !