Je me déplace mon site loin de Apache et sur Nginx, et je vais avoir des problèmes avec ce scénario:Nginx Proxy aux fichiers sur le disque local ou S3
utilisateur télécharge une photo. Cette photo est redimensionnée, puis copiée en S3. S'il y a une pièce appropriée sur le disque (ou si le fichier ne peut pas être transféré sur S3), une version locale est conservée.
Je souhaite que les demandes de ces images (telles que http://www.mysite.com/p/1_1.jpg) soient examinées dans le répertoire p /. Si aucun fichier local n'existe, je veux envoyer la requête à S3 et rendre l'image (mais pas rediriger).
Dans Apache, je l'ai fait comme ceci:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^p/([0-9]+_[0-9]+\.jpg)$ http://my_bucket.s3.amazonaws.com/$1 [P,L]
Ma tentative de reproduire ce comportement dans Nginx est ceci:
location /p/ {
if (-e $request_filename) {
break;
}
proxy_pass http://my_bucket.s3.amazonaws.com/;
}
Ce qui se passe est que chaque demande tente de frapper Amazon S3, même si le fichier existe sur le disque (et s'il n'existe pas sur Amazon, j'obtiens des erreurs.) Si je supprime la ligne proxy_pass, alors les demandes de fichiers sur le disque fonctionnent.
Des idées pour résoudre ce problème?
Pouvez-vous partager le fichier virual.conf. – Thoman