apache web服务器,Apache 虚拟主机

 2023-09-24 阅读 22 评论 0

摘要:虚拟主机配置 虚拟主机: 在一台物理机上,运行或者是维护着多个web站点,用户通过使用不同的IP地址或者是主机名来访问,通过虚拟主机,跨域提供更多的web站点,但是不需要提供额外的服务器。 当Apache启动的时候,如果遇到NameVi
虚拟主机配置


虚拟主机: 在一台物理机上,运行或者是维护着多个web站点,用户通过使用不同的IP地址或者是主机名来访问,通过虚拟主机,跨域提供更多的web站点,但是不需要提供额外的服务器。


当Apache启动的时候,如果遇到NameVirtualHost指令,会为NameVirtualHost所指定的IP地址建立一个虚拟主机的地址表,而不是去监听这个地址,然后在遇到虚拟主机容器<VirtualHost>会判断该地址是否
与之前建立的虚拟主机地址表相同,如果相同则为该地址添加啊虚拟主机,这样每一个NameVirtualHost指令中指定的IP地址都会有一个完整的虚拟主机列表
一:基于名字的虚拟主机配置
基于名字的虚拟主机是能根据客户端提交的HTTP头中标识主机名的部分决定的,因此多个虚拟主机可以公用同一个IP地址 来同时开启多个虚拟主机服务,虽然可以解决IP不足的问题,但是需要DNS,在DNS中增加
与虚拟主机名相对应的IP 地址;而且基于名字的虚拟主机也无法成为SSL服务器


<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>


二:基于IP的虚拟主机配置
可以使得那些不支持HTTP/1.1的浏览器能够正常访问,二是能够支持SSL.(因为需要独立的IP地址和主机名进行关联,但是基于主机名的虚拟主机显然不能做到这一点)
1 建立虚拟网络接口/别名
服务器上的物理接口数量通常都是有限的,更多使用虚拟的网络接口来处理虚拟主机,这也被称为建立网络别名。
ifconfig eth0:0 192.168.1.50 netamsk 255.255.255.0 up
route add -host 192.168.1.50 eth0:0
2 配置虚拟主机
<VirtualHost 192.168.1.50:80>
    ServerName www.nicky.com
DocumentRoot /var/nicky/www
</VirtualHost>


三:动态虚拟主机
使用vhost_alias_module 模块建立动态虚拟主机,通常情况下,基于名字和基于IP地址的虚拟主机应用可以满足大多数人的需求,但是对于那些 服务器集群或ISP提供者来说一个服务器提供几百或者上千web站
点都是很正常的,这些虚拟主机通常都是基于名字,每一个主机有自己的主机和DNS记录,对于动态虚拟主机,Apache提供了vhost_alias_module模块来满足需求,通过它你可以瞬间建立成百上千的虚拟主机


四:为虚拟主机添加日志,只需要添加ErrorLog和CustomLog
<VirtualHost 192.168.1.50:80>
    ServerName www.nicky.com
DocumentRoot /var/nicky/www
ErrorLog /var/log/apache/error_log_www.nicky.com
CustomLog /var/log/apache/access_log_www.nicky.com
</VirtualHost>


五:合并虚拟主机日志
httpd.conf 设置 CustomLog "%h %l %u %t \"%r\" %>s  %b" vhost


六:虚拟主机支持SSL
1 添加443端口
2 <VirtualHost 192.168.1.50:443>
    ServerName www.nicky.com
DocumentRoot /var/nicky/www
SSLEngine on
SSLCertificateFile /var/www/ssl/nicky.crt
SSKCertificateKeyFile /var/www/ssl/nicky.key
</VirtualHost>


七:使用虚拟主机的建议
1 每一个虚拟主机最好都能指定SeverName,而不是去依赖DNS的解释
2 每一个<VirtualHost>容器中都能指定IP地址和监听地址
3 对于每个打算基于名字的虚拟主机的IP地址,只能使用一次NameVirtualHost
4 对于提供很多虚拟主机服务的apache,最好替换他的默认主机

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/93179.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息