
本教程详细阐述了如何在netlify上为现有网站设置子域名。核心策略是利用git仓库的子文件夹结构,并为子域名创建独立的netlify站点,将其构建目录指向相应的子文件夹。文章涵盖了从项目文件组织、netlify站点创建与构建配置,到dns记录设置的完整流程,确保读者能够清晰、专业地部署子域名网站。
在现代Web开发中,为不同功能或项目设置子域名(例如 blog.example.com 或 api.example.com)是一种常见的组织方式。Netlify作为一个强大的静态网站托管平台,提供了灵活且高效的方式来实现这一目标。本文将深入探讨如何在Netlify上配置子域名,重点关注文件结构组织和Netlify的部署策略。
1. 理解Netlify的子域名部署策略
在开始配置之前,理解Netlify如何处理子域名至关重要。
-
子域名 vs. 子路径: 首先要明确,本教程讨论的是真正的子域名(如 work.yourdomain.com),而非子路径(如 yourdomain.com/work)。子域名指向一个完全独立的网站或应用,而子路径通常是主网站的一部分。
-
独立的Netlify站点: Netlify通常将每个独立的网站(无论是主域名还是子域名)视为一个独立的“站点项目”。这意味着即使您的主网站和子域名网站共享同一个Git仓库,它们在Netlify上也将是两个独立的站点配置。
-
共享Git仓库与特定子文件夹: Netlify的强大之处在于,这些独立的站点项目可以连接到同一个Git仓库。关键在于,您需要为每个子域名站点配置其“基础目录”(Base directory),使其指向Git仓库中存放该子域名代码的特定子文件夹。
2. 项目文件结构组织
为了清晰地管理和部署子域名网站,建议在Git仓库的根目录为每个子域名创建一个独立的文件夹。这个文件夹将包含子域名网站的所有代码和资源。
以下是一个推荐的项目文件结构示例:
your-monorepo/
├── main-website/ # 主网站的源代码或构建输出
│ ├── index.html
│ └── assets/
├── work-portfolio/ # 'work.yourdomain.com' 子域名的源代码或构建输出
│ ├── index.html
│ └── images/
├── api-docs/ # 'docs.yourdomain.com' 子域名的源代码或构建输出
│ ├── index.html
│ └── components/
└── .gitignore
登录后复制
说明:
- your-monorepo/ 是您的Git仓库根目录。
- main-website/ 存放主网站的代码。
- work-portfolio/ 存放 work.yourdomain.com 子域名的代码。
- api-docs/ 存放 docs.yourdomain.com 子域名的代码。
每个子文件夹(如 work-portfolio/)内部应包含一个完整的网站项目结构,例如一个独立的React应用、Vue应用、纯静态HTML网站或其他框架项目。
3. 在Netlify中创建子域名站点
一旦您的项目文件结构组织完毕,接下来就是在Netlify中创建并配置子域名站点。
3.1 登录Netlify并添加新站点
- 登录您的Netlify账户。
- 点击 "Add new site" 按钮,然后选择 "Import an existing project"。
- 选择您连接的Git提供商(如GitHub、GitLab、Bitbucket)。
- 选择包含您子域名代码的同一个Git仓库。
3.2 配置构建设置
在 "Site settings" 页面,您需要为这个子域名站点配置其特定的构建参数。这是实现子域名部署的关键步骤。
-
Owner (所有者): 确保选择正确的团队或个人账户。
-
Branch to deploy (部署分支): 选择您希望Netlify监听代码更改并触发部署的分支(通常是 main 或 master)。
-
Base directory (基础目录): 这是最重要的一步。将其设置为您为子域名创建的文件夹路径,例如 work-portfolio/。这将告诉Netlify只从这个子文件夹中构建网站,而忽略仓库中的其他内容。
-
Build command (构建命令): 根据您的子域名项目类型设置。
- 如果是一个React、Vue、Angular等框架项目,通常是 npm run build 或 yarn build。
- 如果只是纯静态HTML文件,可以留空或设置为 echo "No build step"。
-
Publish directory (发布目录): 构建命令执行后,最终的静态文件输出目录。
- 对于大多数框架,这通常是 build、dist 或 public 文件夹,例如 work-portfolio/build。
- 如果您的内容直接位于基础目录,则为 work-portfolio/。
配置完成后,点击 "Deploy site" 开始部署。Netlify将从您指定的基础目录中拉取代码并执行构建命令。
4. 配置自定义域名(DNS设置)
成功部署子域名站点后,最后一步是将其与您的自定义子域名关联起来。
4.1 在Netlify中添加自定义域名
- 部署成功后,进入您在Netlify中为子域名创建的新站点。
- 导航到 "Site settings" -> "Domain management"。
- 点击 "Add a custom domain" 按钮。
- 输入您的完整子域名,例如 work.yourdomain.com。
- Netlify将提示您添加DNS记录。
4.2 在域名注册商处配置DNS记录
- 登录您的域名注册商(例如 Hover)的管理界面。
- 找到DNS管理或高级DNS设置选项。
- 添加一条新的 CNAME 记录:
-
Host/Name (主机记录/名称): 填写子域名的前缀,例如 work。
-
Value/Target (记录值/目标): 填写Netlify为您提供的站点URL,通常是 your-netlify-site-name.netlify.app(这个URL可以在Netlify站点的 "Domain management" 页面找到)。
-
TTL (Time To Live): 保持默认或设置为较小值(如300秒)以便快速更新。
- 保存DNS记录。
等待DNS传播: DNS更改可能需要几分钟到几小时才能在全球生效。您可以使用 dig 命令或在线DNS查询工具(如 whatsmydns.net)来检查DNS记录的传播状态。一旦传播完成,您的子域名将指向Netlify上部署的网站。
5. 注意事项与最佳实践
-
独立部署与构建: 每个Netlify站点(包括子域名站点)都有其独立的部署日志、构建过程、环境变量和重定向规则。这使得管理更加灵活,互不影响。
-
SSL证书: Netlify会自动为您的所有自定义域名(包括子域名)提供免费的SSL证书(由Let's Encrypt提供),无需额外配置,确保您的网站通过HTTPS安全访问。
-
CI/CD集成: 当您向Git仓库推送代码时,Netlify会自动检测到更改,并根据每个站点的配置触发相应的构建和部署。这意味着您对 work-portfolio/ 文件夹的更改只会触发 work.yourdomain.com 站点的部署。
-
重定向与路径: 如果您希望将 yourdomain.com/work 路径映射到子域名,这需要通过Netlify的重定向规则或反向代理实现,与本教程的子域名设置有所不同。请根据您的具体需求选择合适的策略。
-
Monorepo管理工具: 对于包含大量子项目的大型Monorepo,可以考虑使用像Turborepo、Nx等工具来优化构建和依赖管理,进一步提升开发效率。
6. 总结
在Netlify上设置子域名是一个直接且高效的过程,其核心在于利用Git仓库的子文件夹来组织不同站点的代码,并通过Netlify的独立站点配置来精确指向这些子文件夹。结合正确的DNS记录设置,您可以轻松地为您的不同项目、作品集或内容创建独立的子域名网站,并享受Netlify提供的便捷部署、自动SSL和CI/CD集成等优势。这种方法不仅保持了项目结构的清晰,也确保了部署的灵活性和独立性。
以上就是在Netlify上高效配置子域名:文件结构与部署实战指南的详细内容,更多请关注php中文网其它相关文章!