本文以部署盤古 Admin 在線演示系統爲例講解如何基於 Caddy 部署盤古 Admin 的靜態資源和 Web 節點(業務網關)。
部署效果:https://pangu-admin.pulanit.com
- 充當 WebServer 部署項目靜態網站。
- 充當流量網關方向代理後端的 Web 節點(業務網關)。
- 全站自動 SSL。包含靜態網站和 API 請求。
- 解決跨域請求;解決前端 https 後端 http 的協議適配問題。
nginx 也可以做同樣的事情。
解析二級域名
登錄域名服務商控制檯,添加一條二級域名 pangu-admin.pulanit.com
的解析記錄。
修改配置文件
# vi /etc/caddy/Caddyfile
pangu-admin.pulanit.com {
# Set this path to your site's directory.
root * /var/www/pangu-admin
encode gzip
# Enable the static file server.
file_server
# Another common task is to set up a reverse proxy:
reverse_proxy /api/* {
# 可以指定多個後端業務網關 WEB 節點
to localhost:8080
}
}
- 靜態資源文件上傳到目錄:
/var/www/pangu-admin
。 - 後端 Dubbo 微服務集羣的部署不在本文討論範圍,本文僅通過 Caddy 方向道理後端業務網關。
- 通過如上配置,網站和 API 自動都擁有了 https 的能力。
上述部署結構,使得靜態網站和 API 處於同一域名下,解決了跨域的問題。但如果 API 需要反向代理到不同的端口下或者域名下,則可以設置業務網關的參數開啓跨域支持,也可以在 Caddy 配置文件配置響應頭參數以支持跨域訪問。
彩蛋
盤古開發框架 是一套輕量穩健的工業級 Web 接口服務和中後臺業務系統開發框架。原生支持微服務分佈式架構的同時也兼容單體應用架構模式。基於商業友好的 Apache-2.0 協議免費開源發佈。我們希望不僅是開源的受益者也能成爲開源貢獻者,與開源社區一起共建共享開源生態。