web服务器 apache_如何使用Apache Web服务器配置多个网站

web服务器 apache

一篇文章中 ,我解释了如何为单个网站配置Apache Web服务器。 事实证明这很容易。 在本文中,我将向您展示如何使用单个Apache实例为多个网站提供服务。

注意:我在使用Fedora 27和Apache 2.4.29的虚拟机上写了这篇文章。 如果您有其他发行版或Fedora版本,则将使用的命令以及配置文件的位置和内容可能会有所不同。

如我之前的文章所述,Apache的所有配置文件都位于/etc/httpd/conf/etc/httpd/conf.d 。 网站的数据默认位于/var/www 。 对于多个网站,您将需要提供多个位置,对于您托管的每个站点,一个位置。

基于名称的虚拟主机

使用基于名称的虚拟主机,您可以将单个IP地址用于多个网站。 包括Apache在内的现代Web服务器使用指定URL的hostname部分来确定哪个虚拟Web主机响应页面请求。 这只需要比单个站点多一些的配置。

即使您仅从一个网站开始,我仍建议您将其设置为虚拟主机,这将使以后添加更多站点变得更加容易。 在本文中,我将介绍上一篇文章的内容,因此您需要设置原始网站,即基于名称的虚拟网站。

准备原始网站

在建立第二个网站之前,您需要为现有网站提供基于名称的虚拟主机。 如果您没有现有网站, 请返回并立即创建一个

拥有站点后,将以下节添加到其/etc/httpd/conf/httpd.conf配置文件的底部(添加此节是您需要对httpd.conf文件进行的唯一更改):



   
   
<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/html
    ServerName www.site1.org
</VirtualHost>

这将是第一个虚拟主机节,并且应保留在第一位,以使其成为默认定义。 这意味着通过IP地址或解析为该IP地址但没有特定命名主机配置节的其他名称对服务器的HTTP访问将定向到该虚拟主机。 所有其他虚拟主机配置节应遵循此节。

您还需要使用/etc/hosts条目设置网站以提供名称解析。 上一次,我们仅使用localhost的IP地址。 通常,这将使用您使用的任何名称服务来完成; 例如Google或Godaddy。 对于您的测试网站,通过在/etc/hostslocalhost行中添加新名称来执行此操作。 添加两个网站的条目,因此您以后无需再次编辑此文件。 结果看起来像这样:



   
   
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 www.site1.org www.site2.org

让我们也将/var/www/html/index.html文件更改为更加明确。 它应该看起来像这样(带有一些其他文本,以标识为网站编号1):



   
   
<h1>Hello World</h1>

Web site 1.

重新启动HTTPD服务器以启用对httpd配置的更改。 然后,您可以从命令行使用Lynx文本模式浏览器查看网站。



   
   
[root@testvm1 ~]# systemctl restart httpd
[root@testvm1 ~]# lynx www.site1.org

                                              Hello World
  Web site 1.
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

您可以看到显示了原始网站的修订内容,并且没有明显的错误。 按“ Q”键,然后按“ Y”退出Lynx Web浏览器。

配置第二个网站

现在,您可以设置第二个网站了。 使用以下命令创建新的网站目录结构:


[root@testvm1 html]# mkdir -p /var/www/html2 

请注意,第二个网站只是与第一个网站相同的/var/www目录中的第二个html目录。

现在,创建一个新的索引文件/var/www/html2/index.html ,其中包含以下内容(该索引文件有些不同,以区别于原始网站的索引文件):



   
   
<h1>Hello World -- Again</h1>

Web site 2.

在第二个网站的httpd.conf创建一个新的配置节,并将其放置在先前的虚拟主机节的下面(两者看起来非常相似)。 此节告诉Web服务器在哪里可以找到第二个站点HTML文件。



   
   
<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/html2
    ServerName www.site2.org
</VirtualHost>

再次重新启动HTTPD,然后使用Lynx查看结果。



   
   
[root@testvm1 httpd]# systemctl restart httpd
[root@testvm1 httpd]# lynx www.site2.org

                                    Hello World -- Again

   Web site 2.

<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

在这里,我已压缩结果输出以适合此空间。 页面上的差异表明这是第二个网站。 要同时显示两个网站,请打开另一个终端会话,然后使用Lynx Web浏览器查看另一个网站。

其他注意事项

这个简单的示例说明了如何使用Apache HTTPD服务器的单个实例为两个网站提供服务。 考虑其他因素后,配置虚拟主机会变得更加复杂。

例如,您可能要对这些网站中的一个或两个使用某些CGI脚本。 为此,您将在/var/www创建CGI程序的目录: /var/www/cgi-bin/var/www/cgi-bin2 ,以与HTML目录命名保持一致。 然后,您需要向虚拟主机节添加配置指令,以指定CGI脚本的目录位置。 每个网站还可以具有可从中下载文件的目录; 这还需要在适当的虚拟主机节中输入。

Apache网站描述了用于管理多个网站的其他方法,以及从性能调整到安全性的配置选项。

Apache是​​功能强大的Web服务器,可用于管理从简单到高度复杂的网站。 尽管其总体份额正在缩小,但是Apache仍然是Internet上最常用的HTTPD服务器。

翻译自: https://opensource.com/article/18/3/configuring-multiple-web-sites-apache

web服务器 apache

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值