使用apacheweb配置多个站点(代码片段)

it-artical it-artical     2022-11-23     480

关键词:

导读 如何在流行而强大的 Apache Web 服务器上托管两个或多个站点。这篇文章的环境是 Fedora 27 虚拟机,配置了 Apache 2.4.29。如果你用另一个发行版或不同的 Fedora 版本,那么你使用的命令以及配置文件的位置和内容可能会有所不同。

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

技术分享图片

基于名称的虚拟主机

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

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

准备原来的站点

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

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

DocumentRoot /var/www/html
ServerName www.site1.org

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

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

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 文本模式查看网站。

[[email protected] ~]# systemctl restart httpd
[[email protected] ~]# lynx www.site1.org
Hello World
Web site 1.

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 浏览器。

配置第二个站点

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

[[email protected] html]# mkdir -p /var/www/html2

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

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

<h1>Hello World -- Again Web site 2.</h1>

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

DocumentRoot /var/www/html2
ServerName www.site2.org

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

[[email protected] httpd]# systemctl restart httpd
[[email protected] httpd]# lynx www.site2.org
Hello World -- Again
Web site 2.

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 服务器。


via: https://opensource.com/article/18/3/configuring-multiple-web-sites-apache

作者:David Both 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

 

?本文转自:https://www.linuxprobe.com/aache-web.html

wampserver配置多个不同路径站点(代码片段)

wampserver配置多个不同路径站点wampserver默认的服务站点为:*:\\*\\www(wampserver对应的安装地址),但是在开发过程中,我们会把项目部署在不同的路径下,因此就需要为wampserver配置不同路径下的站点。本文... 查看详情

使用tomcat部署多个站点,访问时当然不能带上下文路径咯(代码片段)

参考http://blog.sina.com.cn/s/blog_6341fc0f0100lzaj.htmltomcat的server.xml文件配置办法:新建一个host节点绑定域名填写项目地址保存配置重启tomcat服务 然后把新建文件夹,名字就是3号标注的名字,把war包扔进去  查看详情

创建单个驱动程序以使用代理遍历多个站点(代码片段)

我在python中编写了一个脚本与selenium一起使用代理来解析不同站点的标题。如果我坚持为每个站点创建单独的驱动程序实例,我的脚本就可以做到。但是,我的目标是使用相同的浏览器(使用不同的代理),无论它遍历多少个站... 查看详情

ininginx配置基于/api/v1url路径的多个laravel站点(代码片段)

查看详情

php使用一个数据库和一个代码库管理多个wordpress站点(代码片段)

查看详情

apache多域名多站点配置(代码片段)

前言有时候,我们需要多个站点来实现多个需求。一般情况我们都会在站点根目录(如apache/htdocs)下创建多个文件夹:服务器目录访问地址功能apache/htdocs/awww.xxx.com/a/*aapache/htdocs/bwww.xxx.com/b/*bapache/htdocs/cwww.xxx.com/c/*c然而这种做... 查看详情

在多个站点上为php配置iis7(代码片段)

我在IIS7上安装了PHP5.2.8,它适用于我的默认站点(在C:Inetpubwwwroot)。现在,我需要在我的机器上运行我公司网站的本地副本,并且每个都是wwwroot中的直接副本。我已经将每个端口设置在一个单独的端口上,所以我可以去http://l... 查看详情

apache:如何为一个servername拥有多个站点?(代码片段)

我有一个站点testing.mycompany.com/api和testing.mycompany.com/web。如何在apache中配置?<VirtualHost*:80>ServerNametesting.somedomain.comServerAliastesting.somedomain.comServerAdminwebmaster@localhostDocumentRoo 查看详情

在一台apache服务器上创建多个站点(不同域名)(代码片段)

  使用不同的域名来区分不同的网站,所有的域名解析都指向同一个IP地址。Apache通过在HTTP头中附带的host参数来判断用户需要访问哪一个网站。例如要在一台服务器上设置如下两个站点:http://www.test1.comhttp://www.test1.com下... 查看详情

2021年大数据elk(二十二):采集apacheweb服务器日志(代码片段)

...文章目录,帮助大家回顾前面的知识重点。目录采集ApacheWeb服务器日志一、需求二、准备日志数据三、使用FileBeats将日志发送到Logstash四、配置Logstash接收FileBeat数据并打印五、Logstash输出数据到Elasticsearch1、重新拷贝一份配置... 查看详情

信息收集--drupal网站(代码片段)

一、网站目录1、Core:包括Drupal默认安装时所使用的文件2、Modules:在Drupal中的所有自定义创建的模块都将存储这里。3、Profiles:此文件夹存储安装配置文件。安装配置文件包含有关预安装模块、主题和给定Drupal站点... 查看详情

使用 Varnish 配置多个站点

】使用Varnish配置多个站点【英文标题】:ConfiguremultiplesiteswithVarnish【发布时间】:2011-03-2100:38:45【问题描述】:我们有一台服务器需要通过清漆服务多个域,例如example1.com、example2.com和example3.com我们当前的.vcl文件如下所示:subv... 查看详情

ini带有homebrew的macosx的nginx配置,使用启用了站点的目录。(代码片段)

查看详情

nginx+tomcat实现单个ip地址,多个二级域名+多个站点访问(代码片段)

...将tomcat压缩包解压到多个目录,然后更改/conf/server.xml配置文件中的三个端口: a.Serverport=”8[X]05″shutdown=”SHUTDOWN” b.Connectorport=”8[X]80″maxHttpHe 查看详情

从iis中的一个ip运行多个站点(代码片段)

我有一个WindowsServer2008和IIS7的盒子,我正在使用ASP.NET应用程序。我试图从一个IP运行多个站点,但我无法从外部访问这些站点。我只能从外部访问默认网站,但是当我想访问第二个时,它不起作用。第二个应该在http://ip:81上运行... 查看详情

angular5在多个站点上进行生产构建部署(代码片段)

...置/域的角度构建。这可以通过单个构建生成来实现。我使用下面的命令生成构建ngbuild--prod--base-href="www.site1.com/app-name/web"其他网站也是如此ngbuild--prod--base-href="www.site2.com/app-name/web"ngbuild--prod- 查看详情

nginx位置正则表达式来处理/sub/目录中多个wordpress站点的永久链接(代码片段)

...目录中的多个WordPress站点(节点)的相当永久链接。可以使用这样的URL访问这些站点(我使用cluster和node来表示结构,但它们对于每种情况都不同,但它们始终遵循相同的结构,节点是包含WordPress根文件的目录):https://www.domain.... 查看详情

nginx+tomcat实现单个ip地址,多个二级域名+多个站点访问(代码片段)

...将tomcat压缩包解压到多个目录,然后更改/conf/server.xml配置文件中的三个端口: a.Serverport=”8[X]05″shutdown=”SHUTDOWN” b.Connectorport=”8[X]80″maxHttpHeaderSize=”8192″… c.Connectorport=”8[X]09″enableLookups=”false... 查看详情