基于docker 的项目 附件上传

由于docker 的特殊性质,在开发中完成附件上传的功能。但是在服务器却不能正常的访问附件。或者是附件需要永久存储的问题,而不是随着项目每次发布要去处理附件这种最初级的方式。

主要说一下思路:

方式1、采用附件服务器单独做一套附件服务,类似fastdfs这种。(这也是比较常规且正式的做法)

方式2、采用nginx做附件服务器(静态代理)。

 

这里介绍下方式2:

1、nginx两种方式安装:

常规安装:配置好nginx然后能正常访问就行,然后配置附件要村存储在服务器的磁盘位置,如下:

基于docker 的项目 附件上传_第1张图片

root的方式代理失败,采用alias的方式。这样配置以后服务器中/home/img/下的附件就可以直接以ip+端口/xms/upload/xx.png访问了。

如果是用docker方式的nginx 在docker run中增加一项文件夹挂载(映射):

docker run --name mynginx --privileged=true \

-p 8088:80 -p 443:443 -p 9999:9999 -p 9991:9991 \

-v /home/nginx/nginx.conf:/etc/nginx/nginx.conf \

-v /home/qw/agent/seating-fontend:/home/qw/agent/seating-fontend \

-v /home/nginx/logs/nginx_error.log:/home/nginx/logs/nginx_error.log \

-v /home/nginx/logs/access.log:/home/nginx/logs/access.log \

-v /home/dockernginx/upload/img:/home/img \

nginx

 

然后是项目的中的处理:

这里用的是docker的tomcat容器,同样在docker run 新建容器的时候增加一项文件夹挂载(将上传的附件保存至服务器磁盘中):

基于docker 的项目 附件上传_第2张图片

注意上面与这里两处挂载的文件夹要一致,保证后面上传的附件nginx代理就可以直接访问了。

这样就完成了用nginx做文件服务器,也类似fastdfs-nginx。

 

 

你可能感兴趣的:(java)