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

[经验分享] 在linux下配合apache和resin配置多IP的虚拟主机

[复制链接]

尚未签到

发表于 2016-4-3 11:08:27 | 显示全部楼层 |阅读模式
  由于我们是在局区网内用机器做测试服务器,机器比较紧张,而IP地址倒是比较富余,所以使用同一机器的多IP来配置虚拟主机就是一个不错的选择了。因为我想在同一机器上进行两个系统的部署,所以就使用apache来进行虚拟主机的多IP配置了。好了,开始我们的配置之旅吧~~~
  首先就是apache和resin的安装了,安装就不用说了哈。整合就简单说下吧,其实两者之间的整合还是比较简单的,在编译安装resin的时候需要指定apache的相关配置,这样resin就会自动在apache的配置文件后加上连接到resin的配置了哈,这个具体的先不说,反正安装resin很简单,几行命令而已,照着敲就可以了。假设我们都已经安装好apache和resin了,我们在整个文章中先作如下的假设:
1.apache的安装路径是:$apache_path
2.resin的安装路径是:$resin_path
3.你的应用系统的路径是:$web_path
  我们首先说单个系统在resin和apache中的整合。按照如下的步骤进行:
1.配置resin的document-root为$web_path
2.打开apache的配置文件$apache_paht/conf/httpd.conf,找到DocumentRoot,将其替换为$web_path
    保存修改后的配置文件后,重启resin和apache,再输入IP地址就可以访问到你的下web系统了,注意resin的端口8080不要和apache的监听端口80冲突了。其实他们的简单组合就这么简单,至于如何优化那就是后话了哈,所谓万事开头难嘛,开头搞定了,后面的工作就好办了咯~~~
  上面说的是如何在利用resin和apache配置单系统,如果我们有多个系统需要在同一主机上进行部署,目前apache支持基于名字的多虚拟主机和基于IP的多虚拟主机,前者适合在IP不富余的情况下,而后者则适合IP比较多的情况下进行部署。我们今天主要讲的就是后者了,就如本文前面所说的一样。好了,就开始配置我们的多IP的虚拟主机吧~~
  由于是基于多IP的虚拟主机,首先当然就是给主机配置多个IP地址咯, 我们这里以配置两个IP为主,配置多余两个IP的就一样了。首先我们在linux下查看该主机的IP地址:
#ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:8d:B7:6A:E0 
          inet addr:192.168.1.111  Bcast:192.168.1.255  Mask:255.255.252.0
          inet6 addr: fd80::213:8eff:feb7:2ae0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7077 errors:0 dropped:0 overruns:0 frame:0
          TX packets:54 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:654811 (639.4 KiB)  TX bytes:6229 (6.0 KiB)
          Interrupt:10 Base address:0xb800
    这里我们只看到该主机只有一个IP地址,我们要在网卡eth0上再绑定另外一个IP,因为一般的机器它只有一张网卡,所以我们就在同一张网卡上进行多个IP的绑定。好了,我们开始做吧。
1.首先进入网卡的配置文件
#cd /etc/sysconfig/network-scripts
2.复制网卡eth0的配置文件
#cp ifcfg-eth0 ifcfg-eth0:0
3.修改ifcfg-eht0:0文件
#vi ifcfg-eth0:0
将其中的IP地址改为你的另外一个IP地址,比如我的修改如下:
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168.1.255
HWADDR=00:16:8d:B7:6A:E0
IPADDR=192.168.1.112
NETMASK=255.255.252.0
NETWORK=192.168.0.0
ONBOOT=yes
TYPE=Ethernet

    注意的是,eth0:0的物理网卡地址必须要和eth0d物理网卡地址,即HWaddr要一致,因为是在同一网卡上绑定的多个IP。保存好后,我们就可以重启网卡了,这里要注意的是,如果你是在远程操作机器,请不要直接使用下面的命令,因为网卡down掉后,你就连不上了,呵呵~~~
4.重新启动网卡
#ifconfig eth0 down
#ifconfig eth0 up
5.启动后,再查看IP地址
#ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:8d:B7:6A:E0 
          inet addr:192.168.1.111  Bcast:192.168.1.255  Mask:255.255.252.0
          inet6 addr: fd80::213:8eff:feb7:2ae0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7077 errors:0 dropped:0 overruns:0 frame:0
          TX packets:54 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:654811 (639.4 KiB)  TX bytes:6229 (6.0 KiB)
          Interrupt:10 Base address:0xb800
  eth0:0    Link encap:Ethernet  HWaddr 00:16:8d:B7:6A:E0 
          inet addr:192.168.1.112  Bcast:192.168.1.255  Mask:255.255.252.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:10 Base address:0xb800

    看看,机器是不是有两个IP地址了啊,呵呵,可以试着用另外一台机器ping下~~~
#ping 192.168.1.111
PING 192.168.1.111 (192.168.1.111) 56(84) bytes of data.
64 bytes from 192.168.1.111: icmp_seq=0 ttl=64 time=0.061 ms
64 bytes from 192.168.1.111: icmp_seq=1 ttl=64 time=0.048 ms
64 bytes from 192.168.1.111: icmp_seq=2 ttl=64 time=0.052 ms
#ping 192.168.1.112
PING 192.168.1.112 (192.168.1.112) 56(84) bytes of data.
64 bytes from 192.168.1.112: icmp_seq=0 ttl=64 time=0.063 ms
64 bytes from 192.168.1.112: icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from 192.168.1.112: icmp_seq=2 ttl=64 time=0.055 ms

    呵呵,可以了吧~~~好了,这是我们给apache配置多IP的虚拟主机的第一步,我们接着开始配置apache吧~~按如下步骤进行:
  1.进入apache的配置文件所在目录
#cd $apache_path/conf
2.打开它的配置文件httpd.conf
#vi httpd.conf
3.在该配置文件的最后面的部分,我们可以看到如下的被注释掉的命令:
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

    这里就是我们今天主要做的工作了哦,我们来配置基于IP的两个web系统。修改如下:
1.去掉<VirtualHost *:80>到</VirtualHost>它们之间的命令行前的#号
2.修改<VirtualHost *:80>中的*号为192.168.1.111,这是我们主机的第一个IP地址
3.然后再修改DocumentRoot为你的第一个web系统的部署路径
4.然后修改ServerName后的为你的IP地址,即192.168.1.111。注意这里要改成IP地址哦,这样就可以通过IP地址进行访问了,因为在内部做测试服务器是没有域名的~

    按上述的培好后就完成了第一个虚拟目录的配置,要知道今天我们是来配置多个虚拟目录的,不要忘了我们还有一个IP,就是我们在上面配置的192.168.1.112。我们将<VirtualHost 192.168.1.111:80>到</VirtualHost>之间的部分再复制一份,放到它的后面,然后再如下修改:
1.改192.168.1.111为我们的另一个IP地址192.168.1.112
2.修改DocumentRoot为我们部署的另外一个web系统的路径
3.ServerName同样也要改成我们的另外一个IP地址192.168.1.112
4.当然了,你也可以更改ErrorLog和CustomLog的日志文件,不同的系统建议使用不同的日志记录文件
5.完成上面的配置后,总的配置如下:
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost 192.168.1.111:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /data/web/web1
    ServerName 192.168.1.111
    ErrorLog logs/web1.com-error_log
    CustomLog logs/web1.com-access_log common
</VirtualHost>
  <VirtualHost 192.168.1.112:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /data/web/web2
    ServerName 192.168.1.112
    ErrorLog logs/web2.com-error_log
    CustomLog logs/web2.com-access_log common
</VirtualHost>
  保存配置文件后,我们还要修改resin的配置文件,要不怎么让resin支持多个虚拟目录呢,是吧?呵呵,按照如下步骤进行:
1.进入resin的配置文件所在的目录
#cd $resin_path/conf
2.打开resin的配置文件resin.conf
#vi resin.conf
3.在文件的最后一个</server>前面加入如下内容:
<!-- this host is for web1 -->
<host id="192.168.1.111">
  <web-app id="/" document-directory="/data/web/web1"/>
</host>
  <!-- this host is for web2 -->
<host id="192.168.1.112">
  <web-app id="/" document-directory="/data/web/web2"/>
</host>
4.然后保存配置文件,退出
  重启resin和apache,再在浏览器中输入IP地址就可以访问到各自不同的系统了。但是到目前为止碰到了一个问题,就是我输入http://192.168.1.111可以正确的进入到/data/web/web1下的目录并且可以访问到静态文件,但是web.xml中做的映射却出现找不到的问题,但是我输入http://192.168.1.111:8080却可以正确访问到,但这样它又绕过了apache而直接访问resin了。然而我输入http://192.168.1.112却可以正常访问到/data/web/web2系统,同样是有映射文件的。呵呵,这个问题以后得好好研究研究!
  当然了,如果你还有更多的系统需要部署到同一主机上,就可以按照上面的配置一步步来就可以了。
  虽然还有一点小问题没有解决,但是好歹也是体验了一把配置虚拟主机的过程,怎么说也算是有所收获哈,遗留的问题会慢慢解决的~~~  

运维网声明 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-199050-1-1.html 上篇帖子: Linux下apache和resin的虚拟主机配置(基于域名) 下篇帖子: linux下生成resin-admin的md5加密的密码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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