Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何使用 Apache Web 服务器配置多个站点

如何使用 Apache Web 服务器配置多个站点

原创
作者头像
用户8989785
修改于 2021-09-09 06:44:55
修改于 2021-09-09 06:44:55
2.6K00
代码可运行
举报
文章被收录于专栏:网站技术分享网站技术分享
运行总次数:0
代码可运行

正如我之前的文章中提到的,Apache 的所有配置文件都位于 /etc/httpd/conf/etc/httpd/conf.d。默认情况下,站点的数据位于 /var/www 中。对于多个站点,你需要提供多个位置,每个位置对应托管的站点。

基于名称的虚拟主机

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

即使你只从单个站点开始,我也建议你将其设置为虚拟主机,这样可以在以后更轻松地添加更多站点。在本文中,我将从上一篇文章中我们停止的地方开始,因此你需要设置原来的站点,即基于名称的虚拟站点。

准备原来的站点

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

一旦你有了站点,将以下内容添加到 /etc/httpd/conf/httpd.conf 配置文件的底部(添加此内容是你需要对 httpd.conf 文件进行的唯一更改):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<VirtualHost 127.0.0.1:80>    DocumentRoot /var/www/html    ServerName www.xxx.org</VirtualHost>

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

你还需要使用 /etc/hosts 中的条目设置你的网站以提供名称解析。上次,我们只使用了 localhost 的 IP 地址。通常,这可以使用你使用的任何名称服务来完成,例如 Google 或 Godaddy。对于你的测试网站,通过在 /etc/hosts 中的 localhost 行添加一个新名称来完成此操作。添加两个网站的条目,方便你以后不需再次编辑此文件。结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 www.xxx.org www.xxx2.org

让我们将 /var/www/html/index.html 文件改变得更加明显一点。它应该看起来像这样(带有一些额外的文本来识别这是站点 1):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<h1>Hello World</h1>Web site 1.

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@testvm1 ~]# systemctl restart httpd[root@testvm1 ~]# lynx www.xxx.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 浏览器。

配置第二个站点

现在你已经准备好建立第二个网站。使用以下命令创建新的网站目录结构:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@testvm1 html]# mkdir -p /var/www/html2

注意,第二个站点只是第二个 html 目录,与第一个站点位于同一 /var/www 目录下。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<h1>Hello World -- Again</h1>Web site 2.

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<VirtualHost 127.0.0.1:80>    DocumentRoot /var/www/html2    ServerName www.xxx.org</VirtualHost>

重启 HTTPD,并使用 Lynx 来查看结果。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@testvm1 httpd]# systemctl restart httpd[root@testvm1 httpd]# lynx www.xxx.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 脚本。为此,你可能为 CGI 程序在 /var/www 目录下创建一些目录:/var/www/cgi-bin/var/www/cgi-bin2,以与 HTML 目录命名一致。然后,你需要将配置指令添加到虚拟主机节,以指定 CGI 脚本的目录位置。每个站点可以有下载文件的目录。这还需要相应虚拟主机节中的条目。

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

Apache 是一个强大的 Web 服务器,可以用来管理从简单到高度复杂的网站。尽管其总体市场份额在缩小,但它仍然是互联网上最常用的 HTTPD 服务器。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何使用 Apache Web 服务器配置多个站点
在我的上一篇文章中,我解释了如何为单个站点配置 Apache Web 服务器,事实证明这很容易。在这篇文章中,我将向你展示如何使用单个 Apache 实例来服务多个站点。
星哥玩云
2022/07/20
2.7K0
Apache Web 服务器配置多个站点
正如我之前的文章中提到的,Apache 的所有配置文件都位于 /etc/httpd/conf 和 /etc/httpd/conf.d。默认情况下,站点的数据位于 /var/www 中。对于多个站点,你需要提供多个位置,每个位置对应托管的站点。
用户8989785
2021/09/10
3.6K0
ApacheWeb 配置多站点具体方法
Apache 的所有配置文件都位于 /etc/httpd/conf 和 /etc/httpd/conf.d。默认情况下,站点的数据位于 /var/www 中。对于多个站点,你需要提供多个位置,每个位置对应托管的站点。
会长君
2023/04/26
9100
CentOS 7中安装配置 Apache Web 服务器
学习如何在CentOS 7 中的 Apache 上托管你自己的网站,这是一个可靠、流行且易于配置的 Web 服务器。
星哥玩云
2022/07/13
2.1K0
Apache配置与应用
4、修改自动生成的awstats访问权限,加载CGI模块(Apache2.4以上版本需要加载CGI模块)
全栈程序员站长
2022/09/06
5620
Apache配置与应用
Apache服务器配置多个站点
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/106426.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/04
2.8K0
手把手教你,嘴对嘴传达----Apache虚拟主机配置与应用
在同一台服务器中运行多个web站点,其中每一个站点并不独立占用一台真正的计算机 通过虚拟web主机可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本 使用httpd可以非常方便的构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的web站点
不吃小白菜
2020/09/03
5180
手把手教你,嘴对嘴传达----Apache虚拟主机配置与应用
Linux下配置基于Apache的Web虚拟主机
Web虚拟主机指的是在同一台服务器中运行多个web站点,其中的每个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web主机,通过虚拟Web主机服务可以充分利用服务器的硬件资源。
星哥玩云
2022/07/27
1.9K0
Linux下配置基于Apache的Web虚拟主机
IIS、apache、tomcat服务器虚拟主机配置
首先我们有一个域名  xxx.com;(注,两个一级域名不相同也可以) 有两个二级域名   priject.xxx.com 和 movie.xxx.com 有一台主机 ,现在假设访问主机电脑 IIS服务器虚拟主机配置方法 1、在IIS中添加网站 其中  绑定一栏中的主机名为 priject.xxx.com,在分配好网站的文件路径 2、添加isapi筛选器 其中可执行文件位置为php的安装位置 3、处理程序映射->添加脚本映射 4、最后重启IIS服务器,就可以用域名访问了 再添加站点,同样的步骤。 tomcat服务器虚拟主机配置方法 在Engine节点下增加host节点 <Host name="priject.xxx.com"  appBase="webapps/priject"             unpackWARs="true" autoDeploy="true">         <!-- SingleSignOn valve, share authentication between web applications              Documentation at: /docs/config/valve.html -->         <!--         <Valve className="org.apache.catalina.authenticator.SingleSignOn" />         -->         <!-- Access log processes all example.              Documentation at: /docs/config/valve.html              Note: The pattern used is equivalent to using pattern="common" -->         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"                prefix="localhost_access_log." suffix=".txt"                pattern="%h %l %u %t &quot;%r&quot; %s %b" /> </Host> <Host name= "movie.xxx.com"  appBase="webapps/movie"             unpackWARs="true" autoDeploy="true">         <!-- SingleSignOn valve, share authentication between web applications              Documentation at: /docs/config/valve.html -->         <!--         <Valve className="org.apache.catalina.authenticator.SingleSignOn" />         -->         <!-- Access log processes all example.              Documentation at: /docs/config/valve.html              Note: The pattern used is equivalent to using pattern="common" -->         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"                prefix="localhost_access_log." suffix=".txt"                pattern="%h %l %u %t &quot;%r&quot; %s %b" /> </Host> 注在webapps目录下的movie要创建ROOT目录才可以,而且ROOT必须大写。在ROOT目录先放置jsp代码。 tomcat会根据主机名称自动寻找相应的目录去访问 apache服务器虚拟主机配置方法 打开httpd.conf文件 去掉LoadModule vhost_alias_module modules/mod_vhost_alias.so 这句前面的#号 和 Include conf/extra/httpd-vhosts.conf这句前面的#号 Include conf/e
张泽旭
2018/12/10
2.9K0
Linux实验10 Apache服务器配置
Apache服务器,全称为Apache HTTP Server,是由Apache软件基金会开发和维护的一款开源网页服务器软件。它是世界上最流行的Web服务器软件之一,能够在多种计算机操作系统上运行,包括Unix、Linux、Windows等。Apache服务器以其稳定性、安全性和高度可配置性著称,支持多种功能和技术,比如CGI、SSL/TLS安全协议、虚拟主机等。它还能够通过模块化架构轻松扩展功能,允许用户根据需要添加如PHP、Python等动态内容处理模块。Apache服务器因其开源特性,拥有庞大的用户社区和丰富的文档资源,适合从个人网站到大型企业级应用的各种Web服务部署场景。
90后小陈老师
2024/05/17
3020
Linux实验10 Apache服务器配置
【经验分享】Centos7下虚拟机配置WEB服务器,Apache服务器的安装和配置,独立Apache服务器的安装和配置个人网站和虚拟主机的搭建,Apache服务器的运行测试
第五步:查找 DirectoryIndex ,将其值设置为自己站点首页文件的文件名。这里假设为:index.html
命运之光
2024/06/01
1K0
【经验分享】Centos7下虚拟机配置WEB服务器,Apache服务器的安装和配置,独立Apache服务器的安装和配置个人网站和虚拟主机的搭建,Apache服务器的运行测试
ubuntu apache2配置详解(含虚拟主机配置方法)[通俗易懂]
在Windows下,Apache的配置文件通常只有一个,就是httpd.conf。但我在Ubuntu Linux上用apt-get install apache2命令安装了Apache2后,竟然发现它的httpd.conf(位于/etc/apache2目录)是空的!进而发现Ubuntu的 Apache软件包的配置文件并不像Windows的那样简单,它把各个设置项分在了不同的配置文件中,看起来复杂,但仔细想想设计得确实很合理。
全栈程序员站长
2022/09/07
4.7K0
CentOS-Apache及多站点VirtualHost配置
Apache主要的配置文件是/etc/httpd/conf/httpd.conf,文件中包含许多在基本安装中不需要更改的配置。实际上只需要对文件稍微进行一些更改即可启动并运行服务。
偏有宸机
2020/11/05
2.8K0
Linux _ apache服务器部署 不同域名—访问不同网站(多网站)
总体而言,部署多个网站在一个 Apache 服务器上是一种有效的方式,以满足多个网站主的需求,提高服务器资源的利用率,同时简化管理和维护过程。
神秘泣男子
2024/06/03
8620
【腾讯云的1001种玩法】IIS、apache、tomcat服务器虚拟主机配置
张泽旭
2017/03/15
6.1K0
Apache 配置多个HTTPS站点
作中经常会遇到多个站点实现https访问,并指向同一个网页,本文将详解如何在CentOS 环境下配置Apache多站点实现HTTPS访问。
星哥玩云
2022/07/27
1.6K0
Apache 配置多个HTTPS站点
PHP-服务器配置
要更改虚拟目录的位置,需要到apache的配置文件中更改(conf/httpd.conf)
cwl_java
2020/03/25
2.2K0
多个域名都解析到一台云服务器,如何区分访问域名?
此问题可以基于WebServer 的ServerName 机制解决,即“虚拟主机”技术来解决这个问题,它可以实现一台服务器运行多个网站,且多个网站共用一个公网IP,访问时不同域名共用一个IP,访问不同的网站,大大节省了开销。举例如下: Linux 项目实战之基于域名的虚拟主机:
云知识Online
2018/05/03
8.3K0
如何在CentOS 7上设置Apache虚拟主机
Apache Web服务器是在Internet上提供Web内容的最常用方式,将其功能和组件分解为可单独定制和配置的单个单元。描述单个站点或域的基本单元称为虚拟主机。虚拟主机允许一台服务器使用匹配系统托管多个域或接口。
爆栈工程师
2018/07/30
2.7K0
CentOS6下使用Apache部署HTTP服务
Apache--目前用于实现http服务的软件有许多,包括主流的Apache、Nginx,还有微软的IIS等,这篇文章只介绍Apache实现的各种功能的http服务,通过Apache的功能说明配置文件中每个指令的具体含义和用法。
星哥玩云
2022/07/13
1.4K0
CentOS6下使用Apache部署HTTP服务
推荐阅读
相关推荐
如何使用 Apache Web 服务器配置多个站点
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档