J'ai un serveur Nginx qui héberge une application web qui fonctionne bien en accès direct. Sa configuration est la suivante
server {
listen 8000 default_server;
listen [::]:8000 default_server ipv6only=on;
root /data/www/ ;
server_name server1.com;
location / {
try_files $uri $uri/ =404;
}
location /app/ {
}
}
Maintenant, je dois servir cette application à partir d'un autre serveur Nginx. J'ai donc configuré le proxy inverse comme suit
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /data/www/ ;
server_name server2.com;
location / {
try_files $uri $uri/ =404;
}
location /app/ {
proxy_pass http://server1.com:8000/app/;
}
Lorsque j'accède à l'application à partir du serveur 2, j'obtiens des erreurs comme ci-dessous, par exemple lorsque j'accède à l'application http://server2.com/app/css/app.css (désolé, je n'ai pas le droit de poster des liens)
[error] 6601#0 : *1 open() "/data/www/app/css/app.css" a échoué (2 : No such file or directory)
et aucune erreur dans les journaux du serveur 1. Pourquoi nginx recherche-t-il des fichiers statiques sur le serveur 2 alors que je l'ai configuré en tant que proxy inverse vers le serveur 1 ? La même configuration fonctionne bien avec Apache et le serveur 1.
ProxyPass /app/ http:server1:8000/app/
ProxyPassReverse /app/ http:server1:8000/app/
Qu'est-ce que j'ai manqué ?