注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

Apache VirtualHost的用法  

2012-04-08 01:03:21|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |


这么一个需求:同一台服务器上有两个应用,如
http://hostA:8080/serviceshttp://hostA:8080/admin
外部访问时,需要从不同的域名访问,如
http://services.host.comhttp://admin.host.com
一开始给他们这么一个比较简单的解决方案:
分别把services和admin两个应用,部署到不同的两个端口上,如
services -> http://hostA:8081/
admin -> http://hostA:8082/
接着在防火墙配两个公网IP,然后dns上把services.host.com和admin.host.com配置到这两个IP上。
当请求到达防火墙时,防火墙根据所访问的ip转发到hostA的对应端口上。
前 方用的防火墙是我们公司的Audemon 100,和公司的Audemon系统组的交流后得知,目前的防火墙版本不支持同时配置两个ip,要到六月底才能出版本支持。!@…%#%…%¥,晕倒,好 像这是很基本的功能来的吧,居然还不支持。没办法,此路不通。由于防火墙是不管域名的(因为域名资料是通过应用层传输的),那更别指望防火墙根据域名转发 了。
因此,我们只好提供了软件级的解决方案,让前方在Tomcat前加一个Apache 2.2,通过Apache的Virtual Host + AJP实现转发。
Apache的部分配置如下:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName host1.com
ProxyPass / ajp://host1.com:8009/
ProxyPassReverse / ajp://host1.com:8009/
</VirtualHost>
<VirtualHost *:80>
ServerName host2.com
ProxyPass / ajp://host2.com:8019/
ProxyPassReverse / ajp://host2.com:8019/
</VirtualHost>
Tomcat也需要配置AJP Connector,如host1.com的配置
<Connector port=”8009″ enableLookups=”false” redirectPort=”8443″ protocol=”AJP/1.3″ />
这个方案相对于防火墙的硬件方案,性能上要差一些,但还是不错的。
另 外还有一种方案是通过iptables的domain module来实现,但这个domain module好像是国内的某个高手写的,只更新到v0.02版本,并没有提交到iptables的标准里。虽然可以用而且性能比Apache的方案要高一 些,但是风险较大,而且配置麻烦(既要编译内核,又要配置iptables的rules),所以没有用这种方式。
本文来源于 冰山上的播客 http://xinsync.xju.edu.cn , 原文地址:http://xinsync.xju.edu.cn/index.php/archives/115

 

 

 

<Directory "/var/www/www">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
<Directory "/var/www/phorum">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

# 针对三部主机的 DocumentRoot 进行定!
<VirtualHost *:80>
    ServerName    linux.vbird.tsai
    DocumentRoot  /var/www/html
</VirtualHost>
<VirtualHost *:80>
    ServerName    www.vbird.tsai
    DocumentRoot  /var/www/www
    CustomLog     /var/log/httpd/www.access_log combined
    # 不同的主页可以指定不同的登录档资讯,这样比较好 debug 与分析啦!
</VirtualHost>
<VirtualHost *:80>
    ServerName    phorum.vbird.tsai
    DocumentRoot  /var/www/phorum
</VirtualHost>

 

 

<VirtualHost *>
ServerAdmin xxx@xxx.org
ServerName xxxxx
ProxyRequests Off
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
# reverse proxy setting
ProxyPass / http://192.168.100.8:8180/
ProxyPassReverse / http://192.168.100.8:8180/
# cache dir root
CacheRoot "/var/www/proxy"
# max cache storage
CacheSize 50000000
# hour: every 4 hour
CacheGcInterval 4
# max page expire time: hour
CacheMaxExpire 240
# Expire time = (now - last_modified) * CacheLastModifiedFactor
CacheLastModifiedFactor 0.1
# defalt expire tag: hour
CacheDefaultExpire 1
# force complete after precent of content retrived: 60-90%
CacheForceCompletion 80

ErrorLog /var/log/apache2/error-westdc.geodata.cn.log
CustomLog /var/log/apache2/access-westdc.geodata.cn.log combined
ServerSignature On

</VirtualHost>

 

 

 

 

 

 

 

 

 

 

Windows下配置Apache虚拟主机(VirtualHost)

Home > 服务器 > Windows下配置Apache虚拟主机(VirtualHost)

Windows下配置Apache虚拟主机(VirtualHost)

关于Windows下Apache应用环境塔建:http://clin003.com/ideas/windows-apache-install-useing-like-php-python-subversion-1330/

Windows下Apache应用环境塔建安全设置(目录权限设置):http://clin003.com/servers/windows-apache-directory-permissions-1798/

配置Apache虚拟主机(VirtualHost)目的

让本地的测试环境使用多个域名,同时可以使用不同的网站根目录,有几个域名需要共用一个相同的网站根目录。

环境
系统:Windows 2003
Web程序版本:Apache2

配置Apache虚拟主机操作步骤

打开Apache安装目录下的conf\httpd.conf

在末尾适当位置添加以下配置指令,根据需要自行修改相关设置,详细的指令解释可继续阅读到文章末尾。

#####BY####clin003################

ServerName ab.baicailin.com
NameVirtualHost 192.168.1.1
<VirtualHost 192.168.1.1>
ServerName site.clin003.com
DocumentRoot D:/wwwroot/htdocs
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory D:/wwwroot/htdocs>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

<VirtualHost 192.168.1.1>
#ServerName ab.baicailin.com
ServerAlias ab.clin003.com  ab.baicailin.com
DocumentRoot D:/wwwroot/htdocs/ab
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory D:/wwwroot/htdocs/ab>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

#默认WEB服务目录为 “D:/wwwroot/htdocs” (也就是第一个虚拟主机对应目录),若没有匹配域名请求的时候会使用到默认虚拟主机。

配置修改完成后,保存,然后重启 Apache 服务即可生效。

ServerName ab.baicailin.com

#主机名 建议使用域名

NameVirtualHost 192.168.1.1

#设置虚拟主机。 当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL 请求。

<VirtualHost 192.168.1.1>

#虚拟主机配置开始标记

ServerName site.clin003.com

#设置虚拟主机名

ServerAlias ab.clin003.com  ab.baicailin.com

#若有多个域名需要共用一个目录,可以使用这个指令

DocumentRoot D:/wwwroot/htdocs

#设置虚拟主机根目录路径

<Directory />

#配置目录权限

Options FollowSymLinks

#FollowSymLinks是规则运作所必需的,这是重写引擎的安全需要。主要用于重定向,伪静态应用。

AllowOverride All

#AllowOverride All是指明Apache服务器是否去找.htacess文件作为配置文件。设置为 all 让所有具有.htaccess 上下文的指令都允许出现在.htaccess文件中。如果设置为none,那么服务器将忽略.htacess文件。 参考:http://www.oschina.net/c/article/10493

Order allow,deny

#关于Apache的Order Allow Deny

Apache 有一条缺省规则,“order allow,deny”本身就默认了拒绝所有的意思,因为deny在allow的后面;同理,“order deny,allow”本身默认的是允许所有;当然,最终判断结果还要综合下面的allow、deny语句中各自所包含的范围;(也就是说order语句 后面可以没有allow、deny语句)。  “order allow,deny”代表先判断allow语句再判断deny语句,反之亦然。

判断原则分4步走——

1.       首先判断默认的,所谓“首先判断默认的”,就是判断“order deny,allow”这句,它默认是允许所有;

2.       然后判断逗号前的;

3.       最后判断逗号后的;

4.       最终按顺序叠加而得出判断结果。所谓“最终按顺序叠加而得出判断结果”,这是一个形象化了的说法,我把每一步判断都看作一个“不透明的图层”,然后一步步按顺序叠加上去,最终得出的“图像”就是判断结果。

参考:http://blog.csdn.net/zc2087/archive/2009/07/29/4389113.aspx

  评论这张
 
阅读(2850)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017