子域名是主域名的一个分支或扩展
很简单:
-
主域名
- 例如:
hoppinzq.com(hoppin的首页)
- 例如:
-
子域名
- 例如:
www.hoppinzq.com(hoppin首页,重定向hoppinzq.com) - 例如:
admin.hoppinzq.com(hoppin后台管理系统) - 例如:
blog.hoppinzq.com(hoppin博客系统) - 例如:
ai.hoppinzq.com(hoppinAI系统)
- 例如:
子域名的主要用途
-
组织网站内容:
- 将不同类型的内容分隔开,使网站结构更清晰。例如:
blog.hoppinzq.com- hoppin博客系统
- 将不同类型的内容分隔开,使网站结构更清晰。例如:
-
用于测试和开发:
dev.hoppinzq.com或test.hoppinzq.com- 用来测试新网站功能,而不会影响主网站(hoppinzq.com)的正常运行。
我以前的博客网址是https://hoppinzq.com/hoppinai/,太low了,这个其实就是目录路径,打包的时候还得配置hoppinai这个路径,太难了。
子域名与目录路径的区别
这是一个非常重要的区别:
| 特性 | 子域名 (如 blog.hoppinzq.com) | 目录路径 (如 hoppinzq.com/hoppinai) |
|---|---|---|
| 技术层面 | 被视为一个独立的网站,可以托管在完全不同的服务器上。 | 是主网站的一部分,与主站共享服务器和资源。 |
| 管理 | 可能需要单独配置SSL证书、服务器设置等。 | 管理简单,作为主站的一个文件夹存在。 |
| 搜索引擎优化 | 搜索引擎会将其视为一个新站点,需要单独积累权威和排名。 | 继承主域名的权威和排名,能快速为主站贡献内容。 |
| 适用场景 | 功能独立、内容差异大、技术栈不同的项目。 | 内容与主站紧密相关,是主站的自然延伸。 |
本文以腾讯云为例
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

开始吧
-
添加域名

-
在主域名添加ns解析

-
大概等待10秒解析完成后,开始配置子域名的解析,一般配置A解析,指向服务器公网IP

-
到这一步,基本就算完成了,访问子域名相当于访问服务器公网IP(会跳到我的404)

-
这一步应该是配置nginx,但是我们先把SSL证书申请下来(免费的),因为http旁边有个不安全容易让用户困扰。
(90天真坑啊,得天天配,我邮箱日常都是xxxSSL证书快过期了,我草了。PS:之前是一年~)

-
添加TXT解析,添加TXT解析的目的就是验证域名的所有者是你
添加TXT解析很灵活,主域名子域名添加一个即可

-
添加完TXT解析后,等待10s同步完成,点击验证域名

-
免费的SSL证书一般1~2分钟就签发下来了,下载证书文件
我一般下载这两个,这里我们下载NginxTIP
如果你想提供https的后端接口,可以下载JKS格式那个,然后配置在Tomcat里。 SpringBoot项目内置Tomcat(我个人一般用Jetty,配置都是一样的),只需要在配置文件配置,即可开通8812https接口和8811http接口(注意配置文件里那个密码,你可以在申请SSL证书时设置,没有设置的话,在下载的文件会带着)
如果想http并重定向至https端口上,可用下面的代码实现,太棒了HOPPINZQ@Beanpublic TomcatServletWebServerFactory tomcatServletWebServerFactory() {TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() {@Overrideprotected void postProcessContext(Context context) {SecurityConstraint securityConstraint = new SecurityConstraint();securityConstraint.setUserConstraint("CONFIDENTIAL");SecurityCollection securityCollection = new SecurityCollection();securityCollection.addPattern("/*");securityConstraint.addCollection(securityCollection);context.addConstraint(securityConstraint);}};factory.addAdditionalTomcatConnectors(httpConnector());return factory;}@Beanpublic Connector httpConnector() {Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");connector.setScheme("http");//Connector监听的http的端口号connector.setPort(8811);connector.setSecure(false);//监听到http的端口号后转向到的https的端口号connector.setRedirectPort(8812);return connector;} -
配置nginx

-
重载nginx,访问https://blog.hoppinzq.com

📝 记录笔记和心得 (0)
