一旦您访问在线托管,您可能想知道如何在一台服务器上托管多个网站。尽管这看起来很复杂,但随着您对这个主题的了解越来越多,您会明白您可以在技术指南的帮助下做到这一点。
各种网络服务器可以为您提供免费、开源且在全球范围内广泛使用的服务。但是,在解释如何在一台服务器上托管多个网站之前,我们应该了解什么是 Web 服务器及其工作原理。
什么是网络服务器?
Web 服务器存储并提供网站的文本、图像、视频和应用程序数据等内容。换句话说,请求这些内容的客户端可以在网络服务器的帮助下使用它们。最典型的客户端之一是网络浏览器程序,当用户单击链接或下载文件时,它会从您的网站请求数据。
Web 服务器通过 超文本传输协议 (HTTP) 使用网络浏览器。大多数网页的内容都是用超文本标记语言 (HTML) 编码的。内容可以是静态的(例如文本和图像),也可以是动态的(例如客户标记为购买的商品列表)。大多数网络服务器都支持 服务器端脚本 将业务逻辑编码到通信中以提供动态内容的语言。通常支持 Active Server Pages (ASP)、JavaScript、PHP、Python 和 Ruby 等语言。
Web 服务器如何工作?
Web 服务器基于 客户端-服务器 模型。在这个标准结构中, 客户 请求资源或服务 服务器.
Web 服务器通过几个步骤来处理 Web 客户端的请求:
- 当用户想要将内容加载到网站时,网络浏览器会请求访问(HTTP请求)通过互联网。
- Web 浏览器搜索所请求网站的 IP 地址。它使用以下方式转换网页的 URL 域名系统 (DNS) 或搜索其缓存。此过程将帮助您找到网络服务器;这是网站文件的托管位置。
- 此时,Web服务器接收到HTTP请求并通过其自身进行处理 HTTP服务器.
- 一旦其HTTP服务器接受请求,它将搜索服务器文件以获取相关数据。
- Web 服务器将站点文件返回到发送请求的浏览器。之后,用户就可以看到网站内容。
但请注意,如果 HTTP 服务器无法找到或处理请求的文件,您将在 Web 浏览器中看到一条错误消息。现在您已经熟悉了 Web 服务器的主要概念,您也可以轻松学习如何在一台服务器上托管多个 Web 服务器。
在一台服务器上托管多个网站:Apache
如果您想在一台服务器上托管多个站点,您应该使用 Apache 的虚拟主机文件来提及必须使用哪个域。用于解决站点请求的方法之一称为 基于名称的虚拟主机。当有人查看您的网站时,请求将发送到服务器,根据域名确定要提供哪个网站的文件。此技术将使您能够在一台服务器上使用相同的 IP 托管多个站点。本指南文章将解释如何为每个域设置虚拟主机文件。在我们了解更多详细信息之前,请记住您应该以根帐户身份登录。
另请阅读: “Linux 与 Windows 托管:哪一种更适合您?”
第 1 步:为每个站点创建一个目录
首先使用此命令安装apache2
对于基于 Debian 的系统
apt install apache2 -y
对于CentOS基础系统
yum install apache2 -y
您必须为要托管的每个站点创建一个目录 (在 /var/www 文件夹内)。请考虑使用domain.com 和domain2.com 作为您的域名。
mkdir -p /var/www/domain.com/public_html
mkdir -p /var/www/domain2.com/public_html
第2步:设置文件夹权限
chmod -R 755 /var/www
第 3 步:设置索引页
要查看主页,您应该确保 index.html 为每个域创建文件。你可以设置一些简单的东西,比如 测试domain.com 在这个文件中。
vim /var/www/domain.com/public_html/index.html
测试domain.com
现在您必须保存并退出使用 逃脱 按钮和打字:wq
您可以使用以下命令为您的第二个域重复所有这些步骤。
vim /var/www/domain2.com/public_html/index.html
步骤 4:复制每个站点的配置文件
您必须复制每个站点的默认配置文件,以确保您始终拥有默认副本以供将来创建站点。
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain.com.conf
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain2.com.conf
步骤 5:编辑每个站点的配置文件
至少您将更改并添加突出显示的行 <虚拟主机 *:80> 和 </VirtualHost> 标签.
注意 服务器别名 是您的域名的替代名称;在这种情况下以及大多数情况下,您将 www 放在域名前面,以便其他人可以通过 www 或非 www 查看该网站(服务器名称).
vim /etc/apache2/sites-available/domain.com.conf

再次退出并保存 wq。您必须为您的产品重复此过程 domain2.com.conf 文件;请务必更新 服务器名称, 服务器别名, 和 文档根目录 对于您的第二个域。
另请阅读: “Apache 与 NGINX”
第 6 步:启用您的配置文件
您的服务器默认设置为读取 000-default.conf 文件。但是,在上一步中,我们为每个域创建了一个新的配置文件。因此,我们需要禁用默认文件并使用适合新配置文件的文件。
a2dissite 000-default.conf
您可以通过启用每个新创建的 .conf 文件将服务器映射到您的域。
a2ensite domain.com.conf
a2ensite domain2.com.conf
现在,让我们重新启动 Apache 以注册对其所做的更改。
systemctl restart apache2
第 7 步:验证 Apache 配置
启动 Apache 后,您可以通过编辑您的 /etc/主机文件 在您的计算机上或 您的域的 DNS.
设置完各个方面后,您可以在浏览器中访问您的网站,以查看步骤 3 中创建的 index.html 页面。
另请阅读: 本地与云
在一台服务器上托管多个网站:IIS
我们可以为数十个甚至数百个网站使用 IIS(Internet 信息服务)Web 服务器。您可以在其上托管多个网站,在同一个网站上进行监听和响应 TCP端口。但是,IIS 管理器的界面确实显示您可以托管另一个网站,而无需将其绑定到其他端口(如 8080)。本节将解释如何在同一 IIS 服务器上托管多个网站并将它们绑定到相同的端口和 IP 地址,甚至绑定到不同的 IP 地址。
如何在Windows服务器上安装IIS?
当您在 Windows 上安装 IIS 时,会创建一个空的默认网站并侦听 标准 Web HTTP 端口 – TCP 80。从技术角度来说,我们的网站绑定到 TCP/80 端口。我们必须在浏览器中输入 IIS 服务器的名称(“http://web-srv1”)或其 IP 地址(“http://192.168.1.100”)才能打开该站点。
第1步:绑定IIS网站
在 Windows Server 上运行的 Web IIS 服务器可以帮助您托管多个网站。但是,只有当每个网站都必须使用唯一值进行标识时,IIS 才会正确分发 HTTP 请求。 IIS 网站包含三个属性,这些属性构成每个网站的独特组合。这些属性列于此处:
- TCP 端口号
- 一个IP地址
- 主机头(主机名)
有关托管网站的信息存储在 服务器绑定 IIS Metabase的属性,其格式如下: IP:端口:主机名。因此,如果您想在一台服务器上托管多个网站(相同的端口和 IP 地址),则必须使用 唯一的主机标头.
您可能想知道,什么是主机头?主机标头是向服务器发出的 HTTP 请求的一部分,用于指定其寻址到的网站。因此,我们必须在网络服务器端提及这个主机头。请注意,DNS 具有与 IIS Web 服务器的主机名和 IP 地址相匹配的正确记录。
现在假设您有一个网站运行在 IIS 服务器上并监听端口 80。当我们想在同一端口上绑定第二个网站时该怎么办?
第二步:绑定第二个IIS网站
在 Internet 信息服务 (IIS) 管理器中,您必须使用“添加网站”窗口创建另一个网站并将其命名为 TestSite;该网站位于 C:\inetpub\TestSite。注意不要指定主机名。
将网站内容复制到 C:\inetpub\TestSite 打开 Internet 信息服务 (IIS) 管理器,并在服务器的主机名中添加站点以打开向导。


单击“确定”后,您将看到一条警告消息,告诉您无法使用 装订*:80 对于这两个网站。


在您同意此警告后,您将有另一个网站绑定到端口 80。因此,如果不停止第一个网站,您将无法启动它。通过关注下图,您可以更好地理解这一点。

Windows VPS 托管
查看我们经济实惠的 Windows VPS 计划,该计划具有强大的硬件、最小的延迟和您选择的免费 Windows!
领取您的免费 Windows通过主机标头在 IIS 服务器上托管多个网站
您必须为第二个 IIS 网站选择另一个名称(主机名)才能创建唯一的绑定。为此,请右键单击 测试站点 并选择 编辑 绑定。选择您需要的绑定并点击 编辑.
如下图所示,我们应该指定用户寻址的唯一主机名。在本教程中,我们使用 TestSite;所以让我们把它放在主机名字段中。

您可以使用命令提示符来配置 IIS 站点绑定。如果您使用 IIS 7 或更高版本,则在运行配置 IIS 站点绑定的命令后,您会看到类似以下内容:
C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:testsite /+bindings.[protocol='http',bindingInformation='*:80:testsite']
与第一个网站类似,您也可以启动第二个网站。

此时,您必须为服务器添加 DNS 别名(A 或 CNAME),引用 IIS Web 服务器的 IP 地址或主机名。如果您使用Active Directory域,则需要在域控制器上创建DNS记录。 IIS 使您能够创建 别名记录 DNS 控制台中名称 TestSite 的记录 (dnsmgmt.msc)并将 IIS 服务器的域名设置为 FQDN 目标主机。

您还可以通过 PowerShell 和以下命令创建此 DNS 记录:
Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.woshub.com -Name testsite -ZoneName woshub.com
我们来尝试打开 http://TestSite 在浏览器中。如果一切都正确完成,它应该成功打开。

Linux 托管简化
想要更好的方式来托管您的网站和网络应用程序吗?开发新东西?就是不喜欢 Windows?这就是我们拥有 Linux VPS 的原因。
获取您的 Linux VPS在 IIS 服务器上运行具有不同 IP 地址的多个站点
现在我们来讨论一下在 IIS Web 服务器上使用不同 IP 地址运行两个站点的情况。首先,您必须在 Windows Server 上添加单独的 VLAN 接口或为 NIC 分配额外的 IP 地址(别名)。
在本教程中,服务器的主 IP 地址为 192.168.13.100,我们将向同一网络适配器添加 IP 别名 192.168.13.101:
Get-NetIPAddress | ft IPAddress, InterfaceAlias, SkipAsSource
New-NetIPAddress –IPAddress 192.168.13.101 –PrefixLength 24 –InterfaceAlias “Ethernet” –SkipAsSource $True
现在您必须在 DNS 服务器上为新站点创建 A 记录:
Add-DnsServerResourceRecordA -Name NewSite3 -IPv4Address 192.168.13.101 -ZoneName woshub.com -TimeToLive 01:00:00 –CreatePtr
继续打开“站点绑定”设置,将站点绑定到主机的其他 IP 地址。您可以使用 PowerShell 处理 IIS 服务器上的站点绑定。为此,需要使用 WebAdministration 模块:
Import-Module WebAdministration
您可以查看有关所有可用 IIS 站点及其绑定的播放信息:
Get-IISSite
或者只是一个网站:
(Get-Website -Name NewSite).bindings.Collection

使用以下命令更改本站的绑定;请注意,它允许您更改 IP 地址、端口或名称:
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:80:NewSite1" -PropertyName 'Port' -Value '8080'
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:8080:NewSite1" -PropertyName 'IPAddress' -Value '192.168.13.100'
您可以运行此命令来添加到特定 IIS 站点的新绑定:
New-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:" -Protocol http
删除绑定是通过以下命令完成的:
Remove-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:"
因此,正如您在此处所看到的,您可以在 IIS Web 服务器上在不同的 IP 地址以及相同的 IP 地址和 TCP 端口号上运行多个网站。
最终想法:在一台服务器上托管多个网站
本文主要关注服务器的主要概念,帮助您了解如何在单个服务器上托管多个网站。我们还提供多种 Linux虚拟专用服务器 托管解决方案,您可以使用它在一台服务器上运行不同的网站。 Cloudzy 的计划降低了拥有多个服务器的成本,但我们也允许您利用我们的服务来发挥自己的优势。此外,您可以轻松升级服务器的资源,包括 RAM、存储、处理器和带宽。
常问问题
您可以在一个 Web 服务器上托管多个网站吗?
如果您拥有一台拥有大量资源(例如足够的 HDD 空间、RAM 和 CPU 能力)的大型服务器,您可以使用虚拟主机托管多个网站。您可以在网络服务器上托管无限数量的网站。
如何在一台服务器上运行两个网站?
在单个 Web 服务器上托管多个网站称为虚拟服务器。此外,您应该确保您选择的服务器有足够的资源来处理流量和磁盘空间要求。
VPS服务器有什么用?
VPS 是一种托管服务,可以在服务器上为您提供专用(私有)资源。请注意,使用 VPS 是比不为您提供专用服务器空间的共享主机更安全、更稳定的解决方案。
人们为什么使用 VPS?
VPS 托管已成为一种广泛的选择,因为它通常比专用托管成本更低,同时比共享托管提供更好的可靠性、安全性和性能。