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

Nginx 子域名如何统一指向同一根文件夹(主域名为Shopify场景)

多子域名共用Nginx同一根目录配置流程

核心逻辑说明

Nginx 本身没有“访问子域名自动查找同名独立目录”的默认行为,这类异常表现通常是之前的配置中通过$host变量动态拼接了站点根路径,导致每个域名请求都会匹配到对应名称的文件夹。只要统一通过server块匹配规则锁定固定路径,即可实现三个子域名指向同一根目录的效果,且不会与Shopify托管的主域名产生冲突。

具体配置步骤

  • 定位Nginx现有配置文件,通常存放在/etc/nginx/conf.d/或/etc/nginx/sites-available/目录下
  • 新建或编辑一个统一的站点配置块,将三个子域名全部加入server_name匹配列表,指定固定的根目录绝对路径,参考配置示例:
server {
    # 替换为你实际使用的三个子域名
    server_name sub1.mydomain.com sub2.mydomain.com sub3.mydomain.com;

    # 替换为服务器上唯一主根文件夹的绝对路径
    root /data/web/main_root;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}
  • 清理冗余的干扰配置:
    • 删除所有通过$host、$http_host变量动态拼接root路径的配置行
    • 删除此前为三个子域名单独创建的独立server块,避免配置优先级冲突
    • 由于主域名解析指向Shopify,无请求到达当前Nginx服务器,无需在配置中添加主域名的匹配规则

配置生效校验

  • 执行配置语法校验命令:nginx -t,确认输出无语法错误
  • 执行Nginx重载命令:systemctl reload nginx,让新配置即时生效

常见排查点

  • 确认Nginx运行用户(通常为nginx或www-data)对统一根文件夹拥有读取权限,避免出现403访问错误
  • 如果子域名已配置HTTPS证书,将证书路径、HTTP强制跳转HTTPS的规则全部写入上述统一的server块即可,无需为每个域名单独配置
  • 可通过本地修改hosts文件的方式,将三个子域名指向服务器IP,逐一测试访问内容是否与统一根目录下的文件一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 21:06:04