1 votes

Le module de téléchargement de fichiers Nginx renvoie une erreur 404

J'ai configuré le module de téléversement Nginx pour gérer les téléchargements de fichiers pour une application s'exécutant derrière lui en mode proxy inverse. Cela fonctionne localement mais pas sur le serveur (EC2 Ubuntu AMI). J'ai compilé Nginx moi-même avec le module de téléchargement inclus. Voici la partie pertinente de mon nginx.conf (de l'intérieur de la section serveur) :

    location /upload {
      # passer le corps de la requête à cet endroit
      upload_pass /upload_endpoint;

      # Stocker les fichiers dans ce répertoire
      # Le répertoire est haché, les sous-répertoires 0 1 2 3 4 5 6 7 8 9 doivent exister    
      # c'est-à-dire assurez-vous de créer /u/apps/bugle/shared/uploads_tmp/0 /u /apps/bugle/shared/uploads_tmp/1, etc.
      upload_store /tmp/nginxuploads 1;

      # Définir les autorisations sur les fichiers téléchargés
      upload_store_access user:rw group:rw all:r;

      # Définir les champs spécifiés dans le corps de la requête
      # cela met le nom de fichier d'origine, le nouveau chemin + nom de fichier et le type de contenu dans les paramètres de la requête
      upload_set_form_field $upload_field_name.name "$upload_file_name";
      upload_set_form_field $upload_field_name.content_type "$upload_content_type";
      upload_set_form_field $upload_field_name.path "$upload_tmp_path";
      upload_aggregate_form_field $upload_field_name.size "$upload_file_size";

      upload_pass_form_field ".*";
      upload_cleanup 400 404 499 500-505;
    }

    location /upload_endpoint {
      proxy_pass   http://127.0.0.1:9001;
    }

Aucune erreur dans les journaux à part la 404, et cela signifie simplement que le fichier /usr/local/nginx/html/upload n'existe pas. Une idée de ce qui se passe ici ?

/tmp/nginxuploads/0 à /tmp/nginxuploads/9 existent et sont lisibles et inscriptibles par tous.

2voto

jameh Points 111

Il s'avère qu'une requête GET à un point de terminaison configuré pour le module de téléchargement Nginx renverra toujours une erreur 404. Cela fonctionne bien avec une requête POST comme c'est ce que vous voulez bien sûr, je testais juste en utilisant des GETs!

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X