前言:配置动态虚拟主机
一般情况下,我们会在Web服务器上寄放多个Web站点,并且每个站点都有它自己的虚拟服务器。对于Apache来说,它同时支持基于名称的虚拟服务器和基于IP的服务器。
对于基于IP的虚拟服务器,每个站点都具有一个单独的IP地址,这样的缺点是使用太多的IP地址,但如今IPv4的地址已有枯竭的迹象,所以不提倡使用,通常在要求使用SSL
时才使用。
对于基于名称的虚拟服务器,多个Web站点共享一个IP地址。在这种情况下,通常根据HTTP请求头部来决定将其发给哪一个站点。为此,我们需
要为每个虚拟服务器分别建立一个配置,给作为Web站点的根的目录以及主机命名。
**********************************************************************************************
*********************************************************************************************
备注:关于如何编译安装apache与tomcat,请参看我的另两篇博文。只所以要单独开这一篇,是因为这是我学习ubuntu的终极目的所在。就是要让它来做服务器。所以整合apache与tomcat只是迈出了第一步。接下来,关于如可优化服务器,我想把一想理论课程好好的补补之后才开博。
一、配置ProxyPass以及ProxyPassReverse规则,实现apache和tomcat的整合。
在httpd.conf最后加上:
ProxyPass
/images/ !
ProxyPass
/js/ !
ProxyPass
/css/ !
ProxyPass /
ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
前三行是表示禁止转发该路径的请求,一般来说是静态的。
后两行自然是转发所有的访问至8009也就是tomcat的ajp端口。
这样则完成了同tomcat的整合。
值得注意的是,同tomcat的整合还有一种tomcat-connector的方式,也就是mod_jk,那种的配置更灵活,适用性更高。但是由于其复杂性(目前已经没有更新版本),同时apache2.2版本开始,自身整合了mod_proxy和
mod_proxy_ajp模块,实现了更简单的同tomcat的整合,所以建议采用这种方式了。
二、整合之后,测试
写了一个简单的phpinfo()测试,却提示下载.......这是怎么回事呢?记得上面的ProxyPass配置不?就是这个地方了,它将所有的/的访问转到了tomcat,自然是没办法处理php的了。
在网上也搜了一下相关的处理办法,我的想法是能够做到*.php的都不转发,然而ProxyPass好像只支持url的方式,不支持正则匹配,一般的解决办法是比如建一个php的目录,那么在ProxyPass
/php
!来实现对php的处理。很明显不是一个好的解决办法,如果我的php和jsp混和在一起的,从url上就不能控制了。既便分开,始终要加上一个不必要的路径以区分对php的处理,实在不爽。
经过一番google,找到一种解决办法,那就是配置虚拟主机。
在conf最下面加:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName a.test.com
DocumentRoot /php
DirectoryIndex index.html index.php
<Directory
"/php">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.test.com
DocumentRoot /www
DirectoryIndex index.html index.jsp
<Directory "/www">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ProxyPass /images/ !
ProxyPass /js/ !
ProxyPass /css/ !
ProxyPass / ajp://127.0.0.1:8009/
ProxyPassReverse / ajp://127.0.0.1:8009/
</VirtualHost>
这样就实现了当访问a.test.com时,apache解析php那个目录,而访问www.test.com时,解释www那个目录,并转发至tomcat。运行测试成功!
******************************************************************************************
*************************************************************************************
以过一个多月的紧张调试,及参照一些高手的博客,GOOGLE帮忙之下,终于完成了ubuntu的配置工作。接下来的两个多月的时间,我的学习中心将放在《电子商务设计师》教程的学习之上,准备应付11月份的考试。所以会有一段时间不能及时更新博客。
同时,我也会利用一些业余的时间,学习一些linux的理论知识。让服务器跑得更快,更安全。
加载中,请稍候......