溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Caddy代理SpringBoot Fatjar應(yīng)用上傳靜態(tài)資源

發(fā)布時間:2020-06-10 22:31:31 來源:網(wǎng)絡(luò) 閱讀:4040 作者:secondriver 欄目:開發(fā)技術(shù)

簡述

基于SpringBoot框架開發(fā)的WEB應(yīng)用,其中包含了數(shù)據(jù)服務(wù)接口,管理端UI。在打包的時候采用All In One的方式打成一個fatjar或者war 最終通過java -jar app.jar或者java -jar app.war的方式運行程序,程序內(nèi)置Tomcat容器。

問題

應(yīng)用中有用戶上傳的圖片,音頻等文件,這些文件存儲在本地磁盤 比如:D:\static目錄,通過圖片的相對地址與服務(wù)地址組成的url是無法訪問的資源的。

在Tomcat容器中部署應(yīng)用的時候,app.war是會被自動解壓的,上傳的資源文件在webapp目錄下是可以正常訪問。

目前的方式是fatjar,所以就需要通過WEB服務(wù)器來進行反向代理解決該問題。

服務(wù)器

比較流行的WEB服務(wù)器例如Apache Nginx IIS Squid。文中選擇基于golang開發(fā)的服務(wù)器caddy。

Caddy是一款清新脫俗的WEB服務(wù)器。

配置

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 工作目錄以及靜態(tài)資源目錄
  • proxy 所有請求轉(zhuǎn)發(fā)到8081端口的服務(wù)上
  • proxy 下的 except /media 即就是上傳資源的訪問前綴,意思是排查掉該前綴的請求,不做轉(zhuǎn)發(fā),因此請求到上傳資源就直接在root配置的目錄下查找。

總結(jié)

  • Caddy作為新興的WEB服務(wù)器,在配置上相對的nginx apache簡化很多
  • Caddy基于HTTP/2的WEB服務(wù)器,自動支持HTPPS
  • Caddy也是插件化開發(fā),可以輕松定制開發(fā)
  • Caddy性能方面需要進一步提升以及接收更多實踐的考驗
  • 其它進一步實踐吧
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI