Apache多站点实现原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache多站点实现原理相关的知识,希望对你有一定的参考价值。

参考技术A

很多人常常看到一台服务器上跑多个站点,不同的域名访问不同的站点,就会有个疑惑:访问的时候并没有在地址栏中加入端口号,多个域名都是解析到这个服务器的IP地址,服务器怎么能够正确的分辨和解析呢?

其实还是对http协议不够了解,看下图一切一目了然

对应的在apache中有rewite和proxy模块,它们就是为了完成这些任务, 一台服务上我们配置多个 vhost,必然需要端口号,
比如:
a.com :80
b.com :8080

实际访问的时候 www.a.com 自动转发到80端口, www.b.com 则自动转发到8080端口。

网站 1:

网站 2:

这样一个服务器的 80 端口上就跑起两个站点.

没事找了个虚拟主机来试用,尝试用给的IP地址访问怎么都访问不了,一直都显示

后来仔细一想,虚拟主机是需要依赖域名的,不然没办法区分vhost,后来找到测试的域名果然可以正常访问了。

APACHE 多站点配置方法

例如你的主机IP:192.168.1.8 

而你有三个站点,域名为:www.111.com,www.222.com,www.333.com 

相应的网站文件放在主机的:\website\111;D:\website\222;D:\website\333文件夹下 

现在打开APACHE配置文件httpd.conf文件,设置不同的域名到不同的目录中: 

NameVirtualHost 192.168.1.8 

<VirtualHost 192.168.1.8> 
DocumentRoot "D:\website\111" 
ServerName www.111.com 
</Virtualhost> 

<VirtualHost 192.168.1.8> 
DocumentRoot "D:\website\222" 
ServerName www.222.com 
</Virtualhost> 

<VirtualHost 192.168.1.8> 
DocumentRoot "D:\website\333" 
ServerName www.333.com 
</Virtualhost> 

以上是关于Apache多站点实现原理的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 多站点利用 Redis 实现 Session 共享

apache的rewrite重写日志切割防盗链

Apache Flink 实现原理:容错机制

(-)理解原理,如何用集合实现一个简单但是完整的爬虫

了解Solr6.1结构及实现原理

Apache多站点的配置