'Upload files to Nginx
is there a way to upload files to a server via http using nginx?
I have a program that basically uses curl and the POST method via http to send files to a completely different enterprise software. We want to replicate something similar but are hitting a roadblock.
I have installed nginx and did a basic configuration, I want to be able to upload the files under /data/files/incoming
server {
    listen testserv1;
    location /upload/ {
      limit_except POST PUT { deny all; }
      client_body_temp_path /data/files/incoming/;
      client_body_in_file_only on;
      client_body_buffer_size 128k;
      client_max_body_size 100M;
      proxy_pass_request_headers on;
      proxy_set_body $request_body_file;
      proxy_pass http://127.0.0.1/upload;
      proxy_redirect off;
    }
I basically left the regular config on the nginx.conf and added the above. So my question is, how do I know is actually working? I did from another server try to run the program that supposedly POSTs a file but nothing. is there also a way to test this config from another system? am I missing something on the config?
Any help, anything is much appreciated.
Solution 1:[1]
You can do this without using any external module, by specifying filename into URL. I tested without the proxy, but it should be able to work :
server {
    listen testserv1;
    location ~ "/upload/([0-9a-zA-Z-.]*)$" {
        dav_methods  PUT DELETE MKCOL COPY MOVE;
        client_body_temp_path /tmp/incoming;
        alias     /data/files/incoming/$1;
        create_full_put_path   on;
        dav_access             group:rw  all:r;
        client_body_in_file_only on;
        client_body_buffer_size 128k;
        client_max_body_size 100M;
        proxy_pass_request_headers on;
        proxy_set_body $request_body_file;
        proxy_pass http://127.0.0.1/upload;
        proxy_redirect off;
    }
}
And use : curl -T test.zip http://testserv1/upload/text.zip
Solution 2:[2]
Have a look at the nginx_upload_module: https://www.nginx.com/resources/wiki/modules/upload/
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|---|
| Solution 1 | |
| Solution 2 | Alex Popov | 
