Web、多域名与静态资源配置
主要文件
以 digital-platform-server 为例,多域名和 Web 资源相关配置主要涉及:
domains.confdomains.mongo.db.conf@install/web/domains/*/application.json
domains.conf
domains.conf 负责描述域名感知和站点转发行为,常见内容包括:
- 是否启用应用域名能力
- 主域名或主控域名列表
- Web 转发开关
- 是否按域名感知转发
- 域名包含和排除规则
- 基于占位符的资源映射
digital 的样例说明,开发态和安装态在域名开关与转发规则上可以明显不同,因此多域名配置不能只看一个环境文件。
@install/web/domains/*
这部分资源属于安装态站点静态资源,而不是开发态运行配置。
在 digital 里,这里已经包含了:
- 站点级
application.json - 域名品牌化所需的图片资源
这说明“Web 站点品牌差异化”是通过 @install/web 进入安装目录的,而不是通过 @conf 注入。
domains.mongo.db.conf
这个文件把多域名能力进一步扩展到数据层,用于声明:
- 是否启用按域名分库
- 默认域名集合
- 特定域名对应的数据库连接参数
因此,多域名不是单纯的 Web 转发问题,而是可能同时涉及:
- 域名访问入口
- 静态站点资源
- 域名绑定数据库
理解多域名配置时,需要把访问入口、站点静态资源和域名绑定数据源这三类内容一起看。
可复制模板
domains.conf 模板
#######################################
# 应用域设置;
#######################################
# 是否支持应用的多域访问功能;
# 默认为 false ;
galaxyplatform.security.application-domains.enable=true
# 主域列表;由逗点分隔多个主域名;
# 默认为空;
galaxyplatform.security.application-domains.master-momains=localhost,127.0.0.1,app.example.com
# -----------------------------
# 是否启用请求转发;默认为 false;
# 当启用后,只有显式指定的访问路径才会执行URL映射转发;
# -----------------------------
application.web.forward.enable=true
# ----------------------------------------------------------
# 是否支持“域名”重写转发的目标地址;
# 默认为 false;
#
# 通常,当前端请求需要按“域名”转发时,需要设置此配置;
#
# 当此属性启用后,并且,当前也启用了多域名访问,
# 这种情况下,将会对转发的目标路径先按照“域名占位符”进行替换处理,作为最终转发的目标;
# ----------------------------------------------------------
application.web.forward.domain-aware=true
# -----------------------------
# 可执行转发映射的域名规则列表(白名单);
# 支持指定 Ant 通配符;
# -----------------------------
application.web.forward.domains.includes=*.example.com
# -----------------------------
# 不可执行转发映射的域名规则列表(黑名单);
# 支持指定 Ant 通配符;
# -----------------------------
application.web.forward.domains.excludes=localhost,127.0.0.1
# -----------------------------
# 域名占位符;
# 对转发的目标路径先按照“域名占位符”进行替换处理,替换得到新的目标路径,作为转发的目标地址;
# -----------------------------
# application.web.forward.domains.placeholder=%domain%
# -----------------------------
# 基于访问域名的转发映射表;
# 匹配规则为“精确匹配”,key 是请求URI,value 是要转发(forward)的目标地址;
# -----------------------------
application.web.forward.domains.mappings[/application.json]=/domains/%domain%/application.json
domains.mongo.db.conf 模板
#######################################
# 设置按“域名”隔离的 MongoDB 数据库
#######################################
# 是否启用按“域名”进行数据库级别的隔离机制;
# 默认为 false;
application.data.mongodb.domains-enable=true
# --------------------------------
# 配置采用默认数据库的“域”;
#
# “默认数据库”是指通过 spring.data.mongodb 标准配置项设置的数据库;
#
# 可以设定通配符;例如: *.linkgie.com
# --------------------------------
application.data.mongodb.default-domains=localhost,127.0.0.1,app.example.com
# --------------------------------
# 在支持按“域名”进行数据库级别隔离的情况下,当上下文未定义域名时,是否以默认域来处理;
# 默认为 true;
# application.data.mongodb.use-default-on-empty=true
# --------------------------------
# ---------------------------------------------------------
# ----- 示例:为域名 shop.example.com 设置独立的数据库 -------
# ---------------------------------------------------------
application.data.mongodb.domains[shop.example.com].host=127.0.0.1
application.data.mongodb.domains[shop.example.com].port=27017
application.data.mongodb.domains[shop.example.com].database=shopdb
application.data.mongodb.domains[shop.example.com].authentication-database=shopdb
application.data.mongodb.domains[shop.example.com].username=shopUser
application.data.mongodb.domains[shop.example.com].password=changeMe
# 自动创建索引;
application.data.mongodb.domains[shop.example.com].auto-index-creation=true
# 是否启用事务;
application.data.mongodb.domains[shop.example.com].enable-transaction=true
# 复制集名称;
# MongoDB 服务器需要以复制集模式运行才能支持事务;
application.data.mongodb.domains[shop.example.com].replica-set-name=rs0
@install/web/domains/<domain>/application.json 模板
{
"title": "我的星河应用",
"subtitle": "请替换为应用副标题",
"logo": {
"href": "/logo.png",
"title": ""
}
}
相关AI skills
galaxy-app-config-webgalaxy-app-config-storagegalaxy-app-config-publish-layout




