• 售前

  • 售后

热门帖子
入门百科

使用 Apache Web 服务器设置两个或多个站点的方法

[复制链接]
五题架转困 显示全部楼层 发表于 2021-10-25 19:40:31 |阅读模式 打印 上一主题 下一主题
怎样在盛行而强大的 Apache Web 服务器上托管两个或多个站点。
在我的上一篇文章中,我表明确怎样为单个站点设置 Apache Web 服务器,究竟证明这很容易。在这篇文章中,我将向你展示怎样利用单个 Apache 实例来服务多个站点。
注意:我写这篇文章的环境是 Fedora 27 虚拟机,设置了 Apache 2.4.29。假如你用另一个发行版或差异的 Fedora 版本,那么你利用的下令以及设置文件的位置和内容大概会有所差异。
正如我之前的文章中提到的,Apache 的全部设置文件都位于 /etc/httpd/conf 和 /etc/httpd/conf.d 。默认情况下,站点的数据位于 /var/www 中。对于多个站点,你必要提供多个位置,每个位置对应托管的站点。
基于名称的虚拟主机
利用基于名称的虚拟主机,你可以为多个站点利用一个 IP 所在。当代 Web 服务器,包罗 Apache,利用指定 URL 的 hostname 部门来确定哪个虚拟 Web 主机相应页面哀求。这仅仅必要比一个站点更多的设置。
纵然你只从单个站点开始,我也发起你将其设置为虚拟主机,如许可以在以后更轻松地添加更多站点。在本文中,我将从上一篇文章中我们制止的地方开始,因此你必要设置原来的站点,即基于名称的虚拟站点。
预备原来的站点
在设置第二个站点之前,你必要为现有网站提供基于名称的虚拟主机。假如你现在没有站点,请返回并立即创建一个。
一旦你有了站点,将以下内容添加到
  1. /etc/httpd/conf/httpd.conf
复制代码
设置文件的底部(添加此内容是你必要对 httpd.conf 文件举行的唯一更改):
  1. <VirtualHost 127.0.0.1:80>
  2. DocumentRoot /var/www/html
  3. ServerName www.site1.org
  4. </VirtualHost>
复制代码
这将是第一个虚拟主机设置节,它应该保持为第一个,以使其成为默认定义。这意味着通过 IP 所在或解析为此 IP 所在但没有特定定名主机设置节的其它名称对服务器的 HTTP 访问将定向到此虚拟主机。全部其它虚拟主机设置节都应跟在此节之后。
你还必要利用 /etc/hosts 中的条目设置你的网站以提供名称解析。前次,我们只利用了 localhost 的 IP 所在。通常,这可以利用你利用的任何名称服务来完成,例如 Google 或 Godaddy。对于你的测试网站,通过在 /etc/hosts 中的 localhost 行添加一个新名称来完成此操作。添加两个网站的条目,方便你以后不需再次编辑此文件。效果如下:
  1. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 www.site1.org www.site2.org
复制代码
让我们将 /var/www/html/index.html 文件改变得更加显着一点。它应该看起来像如许(带有一些额外的文本来识别这是站点 1):
  1. <h1>Hello World</h1>
  2. Web site 1.
复制代码
重新启动 HTTPD 服务器,已启用对 httpd 设置的更改。然后,你可以从下令行利用 Lynx 文本模式查看网站。
  1. [root@testvm1 ~]# systemctl restart httpd
  2. [root@testvm1 ~]# lynx www.site1.org
  3.       Hello World
  4. Web site 1.
  5. <snip>
  6. Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
  7. Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
  8. H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list
复制代码
你可以看到原始网站的修改内容,没有显着的错误,先按下 Q 键,然后按 Y 退出 Lynx Web 欣赏器。
设置第二个站点
现在你已经预备好创建第二个网站。利用以下下令创建新的网站目次结构:
  1. [root@testvm1 html]# mkdir -p /var/www/html2
复制代码
注意,第二个站点只是第二个 html 目次,与第一个站点位于同一 /var/www 目次下。
现在创建一个新的索引文件
  1. /var/www/html2/index.html
复制代码
,其中包罗以下内容(此索引文件稍有差异,以区别于原来的网站):
  1. <h1>Hello World -- Again</h1>
  2. Web site 2.
复制代码
在 httpd.conf 中为第二个站点创建一个新的设置节,并将其放在上一个虚拟主机设置节下面(这两个应该看起来非常相似)。此节告诉 Web 服务器在那里可以找到第二个站点的 HTML 文件。
  1. <VirtualHost 127.0.0.1:80>
  2. DocumentRoot /var/www/html2
  3. ServerName www.site2.org
  4. </VirtualHost>
复制代码
重启 HTTPD,并利用 Lynx 来查看效果。
  1. [root@testvm1 httpd]# systemctl restart httpd
  2. [root@testvm1 httpd]# lynx www.site2.org
  3.      Hello World -- Again
  4. Web site 2.
  5. <snip>
  6. Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
  7. Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
  8. H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list
复制代码
在这里,我压缩了输出效果以顺应这个空间。页面的差异表明这是第二个站点。要同时显示两个站点,请打开另一个终端会话并利用 Lynx Web 欣赏器查看另一个站点。
其他考虑
这个简单的例子展示了怎样利用 Apache HTTPD 服务器的单个实例来服务于两个站点。当考虑其他因素时,设置虚拟主时机变得有点复杂。
例如,你大概希望为这些网站中的一个或全部利用一些 CGI 脚本。为此,你大概为 CGI 步伐在 /var/www 目次下创建一些目次:
  1. /var/www/cgi-bin 和 /var/www/cgi-bin2
复制代码
,以与 HTML 目次定名同等。然后,你必要将设置指令添加到虚拟主机节,以指定 CGI 脚本的目次位置。每个站点可以有下载文件的目次。这还必要相应虚拟主机节中的条目。
Apache 网站 形貌了管理多个站点的其他方法,以及从性能调优到安全性的设置选项。
Apache 是一个强大的 Web 服务器,可以用来管理从简单到高度复杂的网站。只管其总体市场份额在缩小,但它仍旧是互联网上最常用的 HTTPD 服务器。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作