10分钟让你彻底理解如何配置子域名来部署多个项目

大家好,我是Smooth,一名大二的前端爱好者,目标是想要成为一名前端开发工程师

配置子域名让你一台服务器可以同时部署多个项目

本篇文章将详细为你讲解如何配置子域名让你一台服务器可以同时部署多个项目,新手都能看懂的教程哈哈

需求

有如下需求:

我有一个域名 zhangjiancong.top,我想在上面搭几个web应用,分别是

  • 个人博客:myblog.zhangjiancong.top
  • 娱乐项目:xxx.zhangjiancong.top

一种办法就是在nginx的document myblog、xxx目录,访问方式就是zhangjiancong.top/myblog

zhangjiancong.top/xxx

但这样有几个缺点

  1. 某些web应用可能本身就不支持非根目录的方式访问,导致不可用
  2. 因为各个应用可能需要进行location的特殊配置,而这些应用不在根路径的时候,location配置可能有所不同,更加复杂
  3. 不够酷,太丑了

需要让 myblog、xxx 都拥有自己的子域名(myblog.zhangjiancong.top、xxx.zhangjiancong.top),可以这么做:

  1. 在域名服务商那里,加一个CNAME记录,把需要配置的子域名指向根域对应的主机名即可。
  2. 然后在宝塔界面修改 Nginx 配置
  3. 添加新站点

具体如下

配置

1. 添加 CNAME 记录

我是阿里云,所以就用阿里云做示例,无论是啥服务商,打开域名解析界面即可

进入到域名解析界面
image.png


点击添加记录
image.png

配置说明

CNAME记录

什么情况下会用到CNAME记录?

[如果需要将域名指向另一个域名,再由另一个域名提供ip地址,就需要添加CNAME记录]
最常用到CNAME的情况包括:做CDN,配置子域名

CNAME记录的添加说明

解析线路一栏记得改成 默认,中国联通只是后文举例说明该配置项作用
image.png

  • 记录类型:选择 CNAME

  • 主机记录:填子域名(比如需要添加 myblog.zhangjiancong.top的解析,只需要在主机记录处填写 myblog 即可;如果添加 zhangjiancong.top的解析 的解析,主机记录直接留空,系统会自动填一个“@”到输入框内)。

  • 解析线路:默认即可(如果不选默认会导致部分特定用户无法解析;在上图中的作用为:除了联通用户之外的所有用户都可正常解析)

  • 记录值:CNAME 指向的域名,只可以填写域名,记录生成后会自动在域名后面补一个“.”,这是正常现象

  • TTL:添加时系统会自动生成,默认为600秒(TTL为缓存时间,数值越小,修改记录各地生效时间越快)。

点击确认即可

2. 修改 Nginx 配置文件

找到宝塔界面该项

image.png


找到配置入口
image.png

对配置文件的 server 字段进行如上图的修改

  • 由于我主域名放的是我另一个资源 loaf-community,所以我 $doc 初始值为 "loaf-community",否则为 "" 即可
  • if 为匹配规则,root 为服务器对应路径资源,我资源都放在 /www/wwwroot/ 的目录下,大家根据自己服务器真实路径进行配置即可
# 设置子域名目录
set $doc "loaf-community";
if ($host ~ ^(\w+)\.zhangjiancong\.top) {
    set $doc $1;
}

# 设置此时域名对应的root
root /www/wwwroot/$doc;

这样做的好处就是,之后要加个子域名,只要我在 /www/wwwroot 目录中新建一个子目录放新增的项目,取子域名作为目录名,然后在域名服务商新增一条字域名的CNAME记录就搞定了,非常方便。

image.png

3. 添加新站点

找到入口
image.png


配置子域名及其对应项目资源路径
image.png

配置完重启服务器即可

配置过第二步后,之后每次添加新子域名和项目,只用进行第一和第三步即可


以上便是这篇文章的全部内容啦


最后

最后,我叫Smooth,在今年2022年我也会尽自己所能书写更多前端教程,期待你的关注~

最近发文计划为Webpack 以及 性能优化 知识体系
  • 10
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要将多个子域名映射到Tomcat中的不同项目,可以按照以下步骤进行配置: 1. 在Tomcat中配置多个虚拟主机 在Tomcat的 `server.xml` 配置文件中,可以添加多个 `<Host>` 元素,每个元素都代表一个虚拟主机。例如: ``` <Engine name="Catalina" defaultHost="localhost"> <Host name="www.example.com" appBase="webapps/example" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="." /> </Host> <Host name="blog.example.com" appBase="webapps/blog" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="." /> </Host> </Engine> ``` 上面的配置表示,将 `www.example.com` 映射到 `webapps/example` 目录下的项目,将 `blog.example.com` 映射到 `webapps/blog` 目录下的项目。 2. 配置DNS解析 将多个子域名解析到服务器的IP地址上,可以通过添加多个A记录或CNAME记录来实现。例如: ``` www.example.com. IN A 192.168.1.100 blog.example.com. IN A 192.168.1.100 ``` 上面的配置表示,将 `www.example.com` 和 `blog.example.com` 都解析到IP地址为 `192.168.1.100` 的服务器上。 3. 配置Apache或Nginx反向代理 如果使用Apache或Nginx作为反向代理服务器,可以将请求转发到不同的Tomcat虚拟主机上。例如,在Apache中的配置可以如下: ``` <VirtualHost *:80> ServerName www.example.com ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ </VirtualHost> <VirtualHost *:80> ServerName blog.example.com ProxyPass / http://localhost:8081/ ProxyPassReverse / http://localhost:8081/ </VirtualHost> ``` 上面的配置表示,将 `www.example.com` 的请求转发到Tomcat的 `www.example.com` 虚拟主机上,将 `blog.example.com` 的请求转发到Tomcat的 `blog.example.com` 虚拟主机上。 完成上述配置后,就可以通过不同的子域名访问到不同的Tomcat项目了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值