设为首页 收藏本站
查看: 1174|回复: 0

[经验分享] Linux下apache和resin的虚拟主机配置(基于域名)

[复制链接]

尚未签到

发表于 2016-4-3 07:57:35 | 显示全部楼层 |阅读模式
  这几天部署系统,对linux下的apache和resin的虚拟主机配置也稍与心得,与大家分享一下。我们都知道apache有两种虚拟主机的配置方式,一种是基于IP的多IP配置,一中是基于主机名的单IP配置。前段时间我也发了一篇关于多IP的虚拟主机配置文章,大家有兴趣的可以看一看。我今天说的是如何用一个IP来配置多域名的虚拟主机配置。
  版本说明:我使用的是apache2.0以上版本,resin是3.0.18以上版本;还是先做几个假设哈,比如我们有一个IP地址是:192.168.1.112,然后我们需要在该机器上配置两个应用,域名分别是:www.web1.cn和www.web2.cn这两个。另外再假设你已经做好了apache和resin的整合工作,apache的安装目录是:/usr/local/apache,resin的安装目录是:/usr/local/resin。好了,下面就开始配置咯~~~
  其实是很简单的,首先修改apache的配置文件,命令和配置如下:
#cd /usr/local/apache/conf
#vi httpd.conf
  找到### Section 3: Virtual Hosts这个位置,如果没有也没关系,就自己加吧。在这个地方加上如下的配置信息:
  #注意这一行配置一定要,没有它就不是基于名称的虚拟主机配置了
NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin mbq@qtone.cn
    DocumentRoot /data/web/web1
    ServerName www.web1.cn
    CustomLog logs/web1-access_log common
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin mbq@qtone.cn
    DocumentRoot /data/web/web2
    ServerName www.web2.cn
    CustomLog logs/web2-access_log common
</VirtualHost>
  这里就是配置两个虚拟主机的配置,其中NameVirtualHost 这一行是必须要的,它后面用*标识本机的任何IP地址,如果你想使用特定的IP,就改成你需要的IP地址,但是必须保证你的IP必须是本机的某一个网络接口。我们这里使用*来配置,即可以适应本机的任何IP,这样即使机器的IP地址变了我们的配置是不需要变的,这也是好处之一哦,呵呵~~~
  然后下面的VirtualHost段就是配置单个虚拟主机的配置了,注意<VirtualHost *:80>这里也是使用的*,要保证这里的*和NameVirtualHost 后的配置一样哦,否则启动或停止apache的时候会出现警告的:-)。每一个VirtualHost最重要和必须要的就是DocumentRoot和ServerName两个配置了,前者是来配置你这个虚拟主机的根目录的,后一个就是你这个虚拟主机的访问域名了,我们这里使用的是www.web1.cn和www.web2.cn这两个域名。保存配置文件,然后重新启动apache。
  我们配置完了apache,就开始resin的配置了,如下:
#cd /usr/local/resin/conf
#vi resin.conf
  找到<host id="" root-directory=".">这一行,这是resin的默认主机配置,我们在这个host段的后面(注意是host段哦,不是host里面)加上如下的配置:
  <host id="www.web1.cn" root-directory=".">
    <web-app id="/" document-directory="/data/web/web1" />
</host>
<host id="www.web2.cn" root-directory=".">
    <web-app id="/" document-directory="/data/web/web2" />
</host>
  注意这里我们加了两个host段,表示配置两个主机地址。注意这里的host中的id就是我们在apache中配置的那两个域名,然后这里的document-directory也分别对应apache中的DocumentRoot的路径配置。然后保存修改,重新启动resin就可以了。
  为了保证我们能够使用域名访问这两个系统,我们得配置windows下的hosts文件(假域名嘛,呵,要不就访问不到咯)。在C盘中搜索hosts这个文件(注意打开搜索的高级选项,将搜索系统文件和隐藏文件都勾上,否则可是搜索不到的呢~)。找到后,然后打开这个文件,在最后加入如下几行:
  192.168.1.112    www.web1.cn
192.168.1.112    www.web2.cn
  然后保存hosts文件,这里的IP就是我们服务器的IP地址。然后就可以通过www.web1.cn访问我们的/data/web/web1系统了,通过www.web2.cn访问我们的/data/web/web2系统了。这样也就完成了我们的单IP多域名的虚拟主机配置了。这里还要说一点的就是,如果你直接输入IP地址,那么就是默认访问第一个系统,即www.web1.cn对应的系统了,因为apache找不到与这个IP地址中稍带的主机名匹配的虚拟主机,所以就默认访问第一个虚拟主机了,所以利用这一点我们可以设置默认的虚拟主机:-)
  好了,apache和resin的虚拟主机也配置完毕了,下面说说它实现的流程和简单的原理吧,呵呵,说的不好可不要仍鸡蛋啊~  DSC0000.gif  
  我们在使用www.web1.cn访问系统时,apache会检查request headers中的Host字段,然后根据这个Host去查找与它匹配的虚拟主机,比如我们使用www.web1.cn访问的时候,请求的headers中的host字段就是www.web1.cn,这样apche获取这个后就会查找ServerName为www.web1.cn的虚拟主机,我们这里找到的就是/data/web/web1这个系统了,如果apache查找不到对应的虚拟主机,则会直接访问第一个配置的虚拟主机,比如我们用IP访问的时候就可以看到效果(比如调换连个VirtualHost的位置)。resin嘛其实也是一样的咯,同样会检测主机名来区分不同的访问请求。
  其实这里不用apahe而直接使用resin也可以达到这样的效果,比如你访问http://www.web1.cn:8080就可以绕过apache直接访问resin了,同样也是可以达到多虚拟主机的访问控制的。使用apache的好处就是apache作为一个成熟的webServer产品,可以提供很好的对静态文件的支持,这点要比tomcat和resin强,但是在动态如jsp和servlet方面就需要专门的servlet引擎来处理,所以也就是为什么现在大家都很流行使用apache结合tomcat或resin来实现服务器的配置了。
  PS一下:apache和tomcat都是同一个组织开发的开源产品,目前其提供一个插件(名称不是很记得了)可以将apache和tomcat进行无缝连接。不过试过,呵呵,有兴趣的朋友不妨试一试~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-198978-1-1.html 上篇帖子: apache2与resin 3.1.6 在linux下的整合与负载均衡 下篇帖子: 在linux下配合apache和resin配置多IP的虚拟主机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表