Caddy代理SpringBootFatjar应用上传静态资源-创新互联

简述

基于SpringBoot框架开发的WEB应用,其中包含了数据服务接口,管理端UI。在打包的时候采用All In One的方式打成一个fatjar或者war最终通过java -jar app.jar或者java -jar app.war的方式运行程序,程序内置Tomcat容器。

创新互联从2013年成立,是专业互联网技术服务公司,拥有项目成都做网站、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元汶上做网站,已为上家服务,为汶上各地企业和个人服务,联系电话:18980820575

问题

应用中有用户上传的图片,音频等文件,这些文件存储在本地磁盘 比如:D:\static目录,通过图片的相对地址与服务地址组成的url是无法访问的资源的。

在Tomcat容器中部署应用的时候,app.war是会被自动解压的,上传的资源文件在webapp目录下是可以正常访问。

目前的方式是fatjar,所以就需要通过WEB服务器来进行反向代理解决该问题。

服务器

比较流行的WEB服务器例如Apache Nginx IIS Squid。文中选择基于golang开发的服务器caddy

Caddy是一款清新脱俗的WEB服务器。

配置

Caddy的配置非常简单而且文档也非常简洁清晰。

下面是解决文中问题的Caddy配置文件,Caddy配置文件默认名为Caddyfile

127.0.0.1:80 {
    gzip {
    }
    log D:\logs\access_server.log {
        rotate_size     10
        rotate_age      10
        rotate_keep     20
    }
    root  D:\static     
    proxy /  http://127.0.0.1:8081 {
        fail_timeout     30s
        max_fails        2
        max_conns        50
        keepalive        50
        except /media    
    }   
}

说明:

  • root 工作目录以及静态资源目录
  • proxy 所有请求转发到8081端口的服务上
  • proxy 下的 except /media 即就是上传资源的访问前缀,意思是排查掉该前缀的请求,不做转发,因此请求到上传资源就直接在root配置的目录下查找。

总结

  • Caddy作为新兴的WEB服务器,在配置上相对的nginx apache简化很多
  • Caddy基于HTTP/2的WEB服务器,自动支持HTPPS
  • Caddy也是插件化开发,可以轻松定制开发
  • Caddy性能方面需要进一步提升以及接收更多实践的考验
  • 其它进一步实践吧

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


本文名称:Caddy代理SpringBootFatjar应用上传静态资源-创新互联
文章分享:http://myzitong.com/article/hsgcg.html