You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AEM as a Cloud Service的Dispatcher上配置多域名?配置异常求助

AEM as a Cloud Service 多域名配置解决方案

正确配置结构与步骤

AEM云服务中,Dispatcher的多域名配置依赖代码库内的dispatcher/src/conf.d目录结构,需确保每个域名的vhost和rewrite配置独立且加载顺序正确:

  1. vhost文件配置
    在dispatcher/src/conf.d/vhosts下为每个域名创建独立配置文件,命名需带数字前缀(确保加载顺序,避免冲突),例如:

    • 0001-domain1.com.conf
    • 0002-domain2.com.conf

    每个vhost文件的核心结构:

    <VirtualHost *:80>
        ServerName domain1.com
        ServerAlias www.domain1.com
    
        # 引入对应域名的rewrite规则
        Include /etc/httpd/conf.d/rewrites/rewrite-domain1.conf
        # 引入通用Dispatcher配置
        Include /etc/httpd/conf.d/dispatcher.d/dispatcher.conf
        # 启用vhost通用配置
        Include /etc/httpd/conf.d/enabled_vhosts/*.conf
    </VirtualHost>
    

    注意:每个VirtualHost块的ServerName需唯一,ServerAlias可包含该域名的二级域名变体。

  2. rewrite规则配置
    在dispatcher/src/conf.d/rewrites下创建对应域名的rewrite文件,例如rewrite-domain1.conf和rewrite-domain2.conf,规则需针对各自域名定制:

    RewriteEngine On
    # 基础转发到Dispatcher
    RewriteCond %{REQUEST_URI} !^/dispatcher
    RewriteRule ^/(.*)$ /dispatcher/$1 [PT,L]
    
    # 域名专属rewrite规则(如路径映射、重定向等)
    RewriteRule ^/special-path$ /content/site1/special [PT,L]
    
  3. 启用vhost配置
    在dispatcher/src/conf.d/enabled_vhosts目录下,确保两个vhost文件都被引用——可通过创建软链接,或添加包含规则Include ../vhosts/*.conf(需保证无重复或冲突命名)。

常见问题排查(针对仅单个vhost生效的情况)

  1. 域名映射未在Cloud Manager配置
    需先在Cloud Manager对应环境的「域名管理」中添加两个自定义域名,完成DNS解析验证(确保域名指向Dispatcher的公网IP),否则Dispatcher不会处理未绑定的域名请求。

  2. vhost加载顺序或命名冲突

    • 若两个vhost文件前缀数字相同,或后加载的文件ServerName/ServerAlias覆盖了前者(如包含对方域名),会导致请求被错误路由。
    • 执行apachectl -S(可通过Cloud Manager SSH访问Dispatcher实例),检查已加载的vhost列表,确认两个域名均被正确识别。
  3. rewrite规则冲突
    检查全局rewrite配置(如rewrites/rewrite.conf)是否存在覆盖域名专属规则的条目,确保域名rewrite文件中的规则优先级高于全局规则(通过[L]标记终止后续规则)。

  4. Dispatcher缓存或配置未部署
    修改配置后需在Cloud Manager触发「Dispatcher配置部署」,或通过Dispatcher Flush工具清空缓存,确保新配置生效。

  5. SSL配置缺失(若使用HTTPS)
    若域名使用HTTPS,需在vhost中配置SSL证书路径(或通过Cloud Manager绑定SSL证书),并确保VirtualHost监听443端口:

    <VirtualHost *:443>
        ServerName domain1.com
        SSLCertificateFile /path/to/cert.pem
        SSLCertificateKeyFile /path/to/key.pem
        # 其余配置同HTTP vhost
    </VirtualHost>
    

验证方法

  • 查看Dispatcher的access.log和error.log(Cloud Manager日志面板),确认请求是否到达对应域名的vhost块。
  • 使用curl -v http://domain2.com测试,观察返回的响应头和内容是否符合预期。

内容的提问来源于stack exchange,提问作者Danish Shaikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:15:58