apache多虚拟主机(apache虚拟主机的类型包括)

admin 39 2022-11-30

本文目录一览:

什么是虚拟主机,apache 虚拟主机

apache虚拟主机一般是php语言的网站程序搭建的一个环境,你需要apache虚拟主机吗?各大虚拟主机商都有的,建议你做好选用哪种全能型的虚拟主机,因为全能主机既支持asp程序,又支持php程序的网站,这会让你少去很多麻烦。

我的网站就是php程序的,当初选了个apache虚拟主机,也没感觉有什么优点,反而感觉单一,所以我还是建议你选择全能型的主机。选择国内好的虚拟主机服务商真的太少了,个人感觉好点的就是中国万网和荆轲网络、中国国万网比较适合企业建站,十分有保障,但是限制多。荆轲网络的价格合理,比较平民化。所以还是建议你选择荆轲网络。

荆轲网络的网址自己去百度搜索吧,这里不让发网址吗,悲催。

如何使用Apache有效的架设大批量虚拟主机

如果你的配置文件httpd.conf中包含类似下面的许多VirtualHost段,并且其中的内容都大致相同的话,你应该会对这里所讲的技术感兴趣。比如: NameVirtualHost 111.22.33.44

VirtualHost 111.22.33.44

ServerName

DocumentRoot /www/hosts/

ScriptAlias /cgi-bin/ /www/hosts/

/VirtualHost

VirtualHost 111.22.33.44

ServerName

DocumentRoot /www/hosts/

ScriptAlias /cgi-bin/ /www/hosts/

/VirtualHost

# 等 等 等 。。。

VirtualHost 111.22.33.44

ServerName

DocumentRoot /www/hosts/

ScriptAlias /cgi-bin/ /www/hosts/

/VirtualHost

最基本的思想是用动态的机制来实现所有这些静态的VirtualHost配置段。这样做有许多优点:

1. 配置文件变小,使得Apache可以更快的启动,同时消耗更少的内存。

2. 添加一个虚拟主机,应该只是简单的在文件系统中创建合适的目录,以及

配置相关的DNS信息,且无需重新启动Apache 。

主要的缺点是你无法针对每个虚拟主机使用不同的日志文件。然而,如果真的在配置有大量虚拟主机的服务器上记录不同的日志文件的话,很有可能会达到操作系统所允许的最大文件描述符的数量。更好的办法是把日志写到管道或者先入先出的栈,并启用其他的进程来分拣所得到的日志信息(同时也可以做一些历史纪录的统计等等)。

概述

一个虚拟主机由两部分来定义:一个是它的IP地址,还有一个是HTTP的"Host:"请求头。动态大量虚拟主机的技术,是基于自动在所要返回的文件路径中插入相关信息的想法实现的。使用mod_vhost_alias可以很容易的实现,但如果你的Apache版本低于1.3.6 ,则你必须使用mod_rewrite 。两者在默认情况下都不启用;要使用他们,必须在配置和编译Apache的阶段启用。

我们需要做很多"伪装",才能使动态虚拟主机看起来像普通主机。最重要的一点是Apache使用虚拟主机名(ServerName)来生成自引用(self-referential)URL等信息。这是用ServerName指令来配置的,并且可以通过环境变量SERVER_NAME传递给CGI脚本。运行时实际使用的值是由UseCanonicalName指令的设置来控制的。当 UseCanonicalName Off 时,虚拟主机名(ServerName)取自请求中的"Host:"头。当 UseCanonicalName DNS 时,则通过DNS反解析虚拟主机的IP地址得到主机名。以前的做法是基于名称的动态虚拟主机,现在常用基于IP地址的虚拟主机。如果Apache无法判断虚拟主机名,则可能是没有"Host:"头或是DNS解析失败,这样种情况下,Apache将使用配置ServerName时所填写的主机名。

另一件需要"伪装"的事情是文档根目录(由DocumentRoot配置并可以通过

DOCUMENT_ROOT环境变量为CGI脚本所使用)。在通常的配置方式下,这些设置信息由核心(core)模块在将URI映射到文件系统的时候使用,但是如果使用动态虚拟主机配置,这些信息将由另外一个使用不同于核心(core)模块将URI映射到文件系统的方式的模块(mod_vhost_alias或mod_rewrite)使用。这两个模块都不负责设置DOCUMENT_ROOT环境变量,所以如果CGI或SSI程序使用了DOCUMENT_ROOT环境变量,那么将得到错误的值。

简单的动态虚拟主机

这是httpd.conf文件中,完成和上文动机部分所提到的虚拟主机一样效果的配置方法,但这里采用了mod_vhost_alias模块:

# 从"Host:"头中取得主机名

UseCanonicalName Off

# 这种日志格式可以从第一个字段中提取出主机名

LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon

CustomLog logs/access_log vcommon

# 在返回请求的文件名路径中包含主机名

VirtualDocumentRoot /www/hosts/%0/docs

VirtualScriptAlias /www/hosts/%0/cgi-bin

将 UseCanonicalName Off 的配置改为 UseCanonicalName DNS 即可实现基于IP地址的虚拟主机。而在文件路径中所要插入的服务器名则通过虚拟主机的IP地址解析得到。

一个实际的个人主页系统

这里对上面的系统作了一点调整,便可作为ISP的个人主页服务器。我们使用了略微复杂的方法,从主机名(ServerName)中提取子字符串,并插入到文件路径中。在这个例子中的文档将在/home/user/中定位。并对所有虚拟主机使用单个cgi-bin目录。

# 所有之前的准备事项和上面一样,然后在文件路径中包含主机名

VirtualDocumentRoot /www/hosts/%2/docs

# 单个cgi-bin目录

ScriptAlias /cgi-bin/ /www/std-cgi/

更复杂的关于VirtualDocumentRoot的设置,可以查阅mod_vhost_alias文档。

在同一个服务器上架设多个主机的虚拟系统

更复杂的设置,应该使用Apache的VirtualHost容器来管理各种虚拟主机配置的作用域。例如,你可以用一个IP地址来给个人主页客户使用,同时用下面的配置提供给商业客户使用。自然的,这两者通过运用VirtualHost结合到一起。 UseCanonicalName Off

LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon

Directory /www/commercial

Options FollowSymLinks

AllowOverride All

/Directory

Directory /www/homepages

Options FollowSymLinks

AllowOverride None

/Directory

VirtualHost 111.22.33.44

ServerName

CustomLog logs/access_log.commercial vcommon

VirtualDocumentRoot /www/commercial/%0/docs

VirtualScriptAlias /www/commercial/%0/cgi-bin

/VirtualHost

VirtualHost 111.22.33.45

ServerName

CustomLog logs/access_log.homepages vcommon

VirtualDocumentRoot /www/homepages/%0/docs

ScriptAlias /cgi-bin/ /www/std-cgi/

/VirtualHost

更为有效的基于IP地址的虚拟主机

在第一个例子中说过,转为基于IP地址的虚拟主机设置很容易做到。但不幸的是,那种做法并不高效,因为这样会在每次处理请求时,需要查询DNS。通过在文件系统中包含IP地址的做法可以避免这样的问题。这样一来,免去了和主机名的关联,在日志记录中也一样可以用IP来分离不同日志。Apache将不会为了确定主机名(ServerName)而去做DNS查询。

# 从IP地址反解析得到主机名

UseCanonicalName DNS

# 在日志中包含IP地址,便于以后分拣

LogFormat "%A %h %l %u %t \"%r\" %s %b" vcommon

CustomLog logs/access_log vcommon

# 在文件路径中包含IP地址

VirtualDocumentRootIP /www/hosts/%0/docs

VirtualScriptAliasIP /www/hosts/%0/cgi-bin

如何配置 Apache 的虚拟主机

Apache 的虚拟主机就是在一台服务器上运行多个网站,每个虚拟主机都可以绑定独立的域名,为这些域名可以指定单独的目录,访问这些域名的时候,Apache 会打开对应目录里面的东西。配置 Apache 的虚拟主机,只需要去修改 Apache 的配置文件。虚拟主机的英文是 virtual host,所以,你的 Apache 配置虚拟主机的文件可能是 httpd.conf ,也可能是跟 virtual host 这个名字相关的文件,比如 vhost.conf ,具体要使用哪一个配置文件,你需要自己去判断。

详细可以参考这个,有图解教程,希望可以帮到你

如何通过 apache VirtualHost 来设置多个虚拟主机

你只要配置多个virtualhost就可以了,例如下面这样:

VirtualHost *:80

    DocumentRoot "/usr/local/www1"

    ServerName  a.test.com

    ErrorLog "/var/log/httpd/www1-error_log"

    CustomLog "/var/log/httpd/www1-access_log" common

/VirtualHost

VirtualHost *:80

    DocumentRoot "/usr/local/www2"

    ServerName  b.test.com

    ErrorLog "/var/log/httpd/www2-error_log"

    CustomLog "/var/log/httpd/www2-access_log" common

/VirtualHost

如何在Debian 10上安装Apache并设置虚拟主机

Apache HTTP Server 是目前应用最多的 web server 服务软件之一,Apache提供了许多强大的功能,而且可以通过其他模块进行扩展。Apache HTTP Server是一个开源的跨平台的服务器软件,目前大部分网站都采用Apache作为网站HTTP服务器。

在本教程中,我们将向你介绍如何在Debian 10中安装Apache并配置虚拟主机。

首先你得有一台安装了Debian的服务器,这样便于你在上面进行演练操作。如果你没有可以考虑自己在虚拟机中安装一个Debian 10。当然,我也推荐您购买一台 阿里云VPS 或者 腾讯云VPS 虚拟主机,如果你更喜欢国外服务器,推荐你尝试 Vultr上的VPS ,注册即送$50美元体验,性价比非常高。

当然有主机了,为安全考虑不建议使用root账号,建议创建一个具有 sudo权限的用户 。

同时,你的Debian已经安装了PHP,如果没有安装可以参考「 如何在Debian 10安装PHP 」教程。

Apache的安装包在Debian的默认源中提供了,所以只需要执行安装命令即可安装。执行安装Apache命令之前我们需要先更新一下系统,命令如下:

安装完成后,apache将默认自动运行,我们通过以下命令查看apache服务状态。

输出命令类似如下:

开启防火墙可以加强服务器的安全性,我们通过防火墙只开放需要访问的端口。可以通过防火墙管理软件 ufw 或者 nftables 进行管理。

如果系统没有安装 ufw 或者 nftables ,可以通过如下命令直接安装。

UFW 如果需要开启 (HTTP)80 或者 (HTTPS)443 端口,可以通过执行如下命令开启:

nftables 如果需要开启 (HTTP)80 或者 (HTTPS)443 端口,可以通过执行如下命令开启:

这个更建议使用 UFW 作为防火墙管理软件,相对来说操作更简单。

Apache安装完成后,需要校验一下Apache是否正常工作。校验方法是打开浏览器,在地址栏中输入 ,如果能正常显示类似如下界面,说明Apache安装成功运行正常。

Apache安装完成后,默认的安装配置文件路径如下:

我们在 /var/www 目录中创建一个网站目录,例如 example.com 。默认情况,目录结构如下:

可以通过以下命令创建:

在该目录下我们创建一个 index.php 文件,文件内容如下:

首先,进入 /etc/apache2/sites-available 目录,创建配置文件 example.com.conf 文件,并在其中添加如下内容。

您可以根据需要命名虚拟主机配置文件,但是建议使用域名作为配置文件的名称。

要启用新的虚拟主机文件,请创建一个从虚拟主机文件到启用站点的目录的符号链接,该链接在启动过程中由Apache读取。

在Debian系统中,您可以使用名为 a2ensite 的帮助程序脚本来启用虚拟主机,命令如下:

当然你也可以选择手动创建符号链接,如下所示:

启用配置后,通过键入以下命令测试语法是否正确:

如果一切正常,会输出如下内容:

重启服务,使配置生效,命令如下:

在浏览器地址栏中输入 ,正常情况下你将看到如下输出:

至此,本教程交接完毕。

通过本教程,你将学会如何在Debian 10上安装Apache并设置虚拟主机,如果你有自己的的Debian 10主机不妨按照教程进行安装尝试,如果没有自己的Debian自己建议可以安装一台Debian10虚拟主机或者去 阿里云 或者 腾讯云 或者 Vultr 购买一台自己的VPS服务器。

apache多虚拟主机的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于apache虚拟主机的类型包括、apache多虚拟主机的信息别忘了在易优之家进行查找喔。

上一篇:tomcat虚拟主机的配置(tomcathome配置)
下一篇:无锡网站优化(无锡网站优化效果)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~