server { add_header 'Access-Control-Allow-Methods' 'GET,OPTIONS,PUT,DELETE,PATCH' always; add_header 'Access-Control-Allow-Credentials' 'true' always; add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Headers' 'Authorization,DNT,User-Agent,Keep-Alive,Content-Type,accept,origin,X-Requested-With,UPLOAD-SERVER-TOKEN,UPLOAD-SERVER-USER,UPLOAD-SERVER-DATE,UPLOAD-SERVER-NOTIFY-URL,UPLOAD-SERVER-ACTION,UPLOAD-SERVER-LOCAL-PATH' always; if ($request_method = OPTIONS ) { return 200; } listen 80; #listen [::]:80; server_name ar.upload.ming; index index.html index.htm index.php; root /Volumes/HDD/workshop/old/ar.upload.ming; client_max_body_size 20m; client_body_buffer_size 512k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE_ADD $remote_addr; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } include ar_upload_img_filter.conf; include none.conf; #error_page 404 /404.html; include enable-php.conf; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } # 上传path配置 location /upload { if ($request_method != POST) { return 405; } #权限控制 access_by_lua_file '/path/upload-server/auth.lua'; # 转到后台处理URL upload_pass @python; client_body_in_file_only on; # 临时保存路径 # 可以使用散列 upload_store /path/ar.upload.ming/tmp; # 上传文件的权限,rw表示读写 r只读 upload_store_access user:rw; # 这里写入http报头,pass到后台页面后能获取这里set的报头字段 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模块自动生成的一些信息,如文件大小与文件md5值 upload_aggregate_form_field "${upload_field_name}_md5" $upload_file_md5; upload_aggregate_form_field "${upload_field_name}_size" $upload_file_size; # 允许的字段,允许全部可以 "^.*$" upload_pass_form_field "^.*$"; # 每秒字节速度控制,0表示不受控制,默认0 upload_limit_rate 0; # 如果pass页面是以下状态码,就删除此次上传的临时文件 upload_cleanup 400 404 499 500-505; } location @python { proxy_pass http://127.0.0.1:8000; #return 200; # 如果不需要后端程序处理,直接返回200即可 } location /action {         #本地端口号 proxy_pass http://127.0.0.1:8000;     } access_log off; }