云服务器 | 小白建站笔记之 多站点配置

如果你购买了一个云服务器,那么你一定不满足于只是在上面建一个网站。云服务器的功能很强大,最近流行的小程序完全可以挂载在云服务器上。本文将从修改Apache服务文件 httpd.conf 出发,手把手教你如何在一个服务器上建立多个网站域名指向。

图文 / 丁建雄

小白是单纯为兴趣而写作的独立创作人,如果您喜欢小白的文章,欢迎关注、交流、分享(引用请链接到本文)。

云服务器 | 小白建站笔记之 多站点配置_第1张图片
最真挚的 总是陪伴 By [Jaromír Chalabala](https://500px.com/chalabala)

多站点配置概念

还是从最基本的入手,先弄清楚我们的目的是什么?

我们购买了一个云服务器之后,供应商会提供给我们一个公网IP地址,比如:115.159.107.214

这个IP地址其实是我们云服务器专属的IP入口,外部网络访问这个IP地址其实访问的是云服务器上特定的入口文件。比如,在CentOS系统的Apache服务器端,默认的服务器入口文件URL为 /var/www/html/index.html

一般来讲,如果我们只是建立一个网站,那么只要在相应的文件夹下面存入我们需要展示的网页就行了。但是,更多时候,我们可能对这个服务器配置有更多的要求,比如挂载多个网站。

举个例子,我们现在有两个域名:sample1.com 和 sample2.com ,我们想要达到的效果是:输入不同的域名,打开不同的网站(其实也就是对应于不同的服务器入口文件)。

要达到这样的效果,有哪些可行的思路呢?

复杂的就不提了,简单的配置方式主要有两种:

  • 将同一个IP的不同端口映射到不同的虚拟主机,即不同端口映射到不同的站点;
  • 将同一个端口映射成不同的域名,即不同的域名映射到不同的站点。

根据域名分配的多站点配置

大家可以简单理解上述两种情况:根据端口划分、根据域名名称划分。

在Windows平台下面的多站点配置,推荐大家参考 刘亚壮博客专栏 。他这边的配置方式也是按照这两种方法来实现的,写得很详细(虽然有些步骤我认为是不必要的,但是没有错误的步骤,他的方法能走通)。本文的配置环境是CentOS。

本文主要介绍的是第二种情况。小白认为,由于外部网络是主要通过域名访问的,因此,虽然两种方法都能走通,但是第二种方法却是最接近真实状况的。下面就跟着小白的步伐一步步完成这个多站点的配置任务吧!

第一步:找到 httpd.conf 配置文件

文件所处位置 /etc/httpd/conf 这个是最关键的,不要找错了,网上有很多博客写的地址是错误的,或者系统环境不同,要对号入座。

第二步:下载 httpd.conf 并打开

小白使用的云服务器文件管理工具是 FileZilla ,这其实是一个FTP下载上传工具(至于如何FTP登陆云服务器,各位请自行百度啦~)。

云服务器 | 小白建站笔记之 多站点配置_第2张图片
filezilla界面

找到远程站点 下的 httpd.conf 文件,然后下载到本地站点

下载完成后,右键选择打开方式——使用记事本或者 Notepad++ 打开。

第三步:修改 hpptd.conf 配置文件

配置文件比较长,将配置文件翻页到最后,可以看到一些说明文字:

云服务器 | 小白建站笔记之 多站点配置_第3张图片
VirtualHost 说明文档

这里面从 section3 开始,就是多站点配置的说明文件。这里面给出了一个参考的示例:

#
#    ServerAdmin [email protected]
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#

这里面是比较完整的示例,其实,对于小白来讲,有些参数文件大部分时候不需要,因此可以稍作精简,只留下必不可少的部分,便于大家理解。

回到之前的问题:

我们现在有两个域名:sample1.com 和 sample2.com* ,我们想要达到的效果是:输入不同的域名,打开不同的网站*

下面是最精简代码:

NameVirtualHost *:80


    DocumentRoot /var/www/html/sample1  #指定sample1网站文件存放目录
    ServerName  sample1.com          #指定访问域名为sample1.com



    DocumentRoot /var/www/html/sample2  #指定sample2网站文件存放目录
    ServerName  sample2.com             #指定访问域名为sample2.com

将这些代码直接复制到 httpd.conf 文件最后即可。

在这里,大家应该发现了,小白这边跟官方文档相比少了很多东西,但是,亲测功能项目一个不少,大家可以放心使用(如果有需要详细log文件的小伙伴,也可以按照官方文档补齐哦,文件夹自己定义即可)

第四步:上传修改后的配置文件

将现在的 httpd.conf 文件上传到之前下载的位置,并覆盖原始文件,刷新服务器。

请注意!还没好!

很多博客里面都漏掉了一点,那就是需要重启 Apache 服务,重启 Apache 服务的指令是:

service httpd restart

这个是需要在CentOS命令窗口登录的,小白在Windows上使用的登录工具是 Putty(官网上不去了,这里能下载)。

服务重启之后,在浏览器里面输入这两个域名,就可以链接到相对应的网站了。

OK,大功告成!

故事分享

小白在学习这块的时候,一直被卡着,尝试了很多种博客大神的办法,都没能成功。

前前后后看了几十篇文章,也看过官方参考文献。

后来,搁置了几个月之后,在前一篇文章学习文件上传的时候,得到刷新 的启发,才想到或许是相似的可能的原因。

后来,在一个论坛里面,有人提到,最后还需要重启 Apache 服务最终才能大功告成。

一试,成功了!

看来,很多时候,大家做一件事,很多人做了前99%,但是总是忽略那最后的1%。所以大家都能了解,却鲜有人能真正做成功。做成一件事并不难,要善始善终,而不能光说不做。心中有货,却不能将想法变成现实,那想法终究只是空想,这也是我现在做这件事的意义。

技术帖,不到关键时刻,没人会愿意去看,而往往技术帖都是雪中送炭。这么多年下来,享用了前辈们的成果,现在也该留下点东西了。

那些最真挚的东西,总是在你最落魄的时候,依然如故守护在你身边的。

参考文献
Apache_Virtual Hosts
刘亚壮博客专栏
Jaromír Chalabala

你可能感兴趣的:(云服务器 | 小白建站笔记之 多站点配置)