资源服务器搭建

2018-01-14  本文已影响382人  小黑_Coder

闲的没事,想着自己搭建一个资源服务器可能以后能用到。选择使用Nginx + Golang搭建,结果这一搞就搭进去了三个晚上,都是泪啊。所以决定写一篇博客来祭奠一下逝去的三个晚上。

环境依赖

上面提及这些具体怎么安装,我就不在这详细描述了,大家可以自行Google解决

资源服务器搭建思路

当然还有一些其他设计思路,比如可以将图片直接上传给业务服务器,再由业务服务器传给资源服务器。或者直接将图片传给业务服务器,等客户端向资源服务器请求资源的时候,再由资源服务器来业务服务器取。但是后面说的这两种,如果要做断点续传,都需要业务服务器自己处理一些逻辑。但是第一种设计,就可以把断电续传等功能都交由资源服务器处理了,因此我选择了第一种设计。

nginx配置

    
        location /upload {
            #上传完成后后端接受处理文件 
            upload_pass @uploadImageGo;
            #文件上传路径,文件临时路径 
            upload_store /Users/liuhu/Desktop/nginxRoot/www/upload/images; 
            #上传速度限制
            upload_limit_rate 2048k;
            #文件读写权限 
            upload_store_access user:rw;
            #表单中提交的信息
            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.md5" "$upload_file_md5";
            upload_aggregate_form_field "$upload_field_name.size" "$upload_file_size";
            #转发的时候只传submit和description
            #upload_pass_form_field "^submit$|^description$";
            #打开开关,意思就是把前端请求的参数会传给后端
            upload_pass_args on; 
            #将表单中所有信息传递给后端使用,客户端提交的信息也传递
            upload_pass_form_field "^.*$";
            #发生这些错无的时候删除资源
            upload_cleanup 400 404 499 500-505; 
        }
        
        location @uploadImageGo {
          proxy_method POST;
            proxy_pass http://localhost:8081;
        }

注意:必须使用Post请求/uoload接口,不能nginx会直接报错

业务服务器处理

三个晚上就坑在了这里

上一篇 下一篇

猜你喜欢

热点阅读