`
ferreousbox
  • 浏览: 287520 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在linux下配合apache和resin配置多IP的虚拟主机

阅读更多

    由于我们是在局区网内用机器做测试服务器,机器比较紧张,而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系统,同样是有映射文件的。呵呵,这个问题以后得好好研究研究!

    当然了,如果你还有更多的系统需要部署到同一主机上,就可以按照上面的配置一步步来就可以了。

    虽然还有一点小问题没有解决,但是好歹也是体验了一把配置虚拟主机的过程,怎么说也算是有所收获哈,遗留的问题会慢慢解决的~~~  

分享到:
评论

相关推荐

    oracleInstall

    3. 设置虚拟主机:在Apache的配置中,为Resin创建一个虚拟主机,指定Resin服务器的IP地址和端口。 4. 配置Resin:在Resin的conf/resin.xml中,设置监听端口,并确保其与Apache配置中的端口一致。 5. 测试配置:重启...

    用Linux搭建全自动的虚假主机(下).pdf

    在本篇技术文章中,我们将继续探讨如何使用Linux操作系统来构建一个全自动的虚假主机环境,主要涉及磁盘限额配置、Apache服务器的安全配置、PHP的安全设置、Zend Optimizer的安装以及Resin服务器的安装与配置。...

    Linux系统配置jsp服务器扫描.pdf

    - 编辑Apache的配置文件`/usr/local/apache/conf/httpd.conf`,添加NameVirtualHost指令和虚拟主机配置,指定IP地址和域名。 - 设置错误日志和访问日志路径。 - 重启Apache服务以应用更改。 7. **配置Resin以...

    RedHat Linux 网络服务器构架实务(三).pdf

    - 编辑Apache的配置文件(`/usr/local/apache/conf/httpd.conf`),指定虚拟主机的IP地址和管理员邮箱。 这些步骤详细说明了如何在Red Hat Linux环境下搭建和优化网络服务器,涵盖了从基本服务安装、服务器配置到...

    强烈推荐 Linux运维从入门到高级全套案例教程

    - **5.1.2 Nginx虚拟主机配置**:配置多个独立的网站在同一台服务器上。 - **5.1.3 Nginx性能优化**:提高Nginx的处理能力。 - **5.1.4 Nginx参数深入理解**:详细了解Nginx配置参数的作用。 - **5.1.5 Nginx ...

    linux运维.pdf

    - **配置要点**:安装Nginx软件包,配置虚拟主机,优化Nginx性能,理解和配置重写规则。 ##### 5.3 Tomcat/Resin JAVA服务器 - **Tomcat介绍**:Tomcat是一个开源的Servlet容器,主要用于运行Java Web应用程序。 - ...

    Linux运维从入门到高级全套案例v3

    - **Tomcat/Resin JAVA服务器**:安装配置Tomcat和Resin,以及性能优化和多实例配置。 - **Nginx Tomcat动静分离**:利用Nginx作为反向代理,实现静态内容和Java应用的分离。 - **LNAMP高性能架构配置**:优化...

    小白入门linux入门到高级全套案例

    - 虚拟主机配置: 实现一个服务器托管多个不同域名网站的技术。 - 性能优化: 包括参数调整、缓存策略等。 - Rewrite规则: 使用重写规则实现URL重定向等功能。 - **Rsync同步服务器**: - 基于SSH的同步: 使用SSH...

    Linux 运维入门到高级.pdf

    - **LAMP 架构思考:** LAMP 架构通常指的是 Linux、Apache、MySQL 和 PHP 的组合,实践中不仅要在一台机器上实现全部组件,还应思考如何将它们分布在多台机器上进行更高效的配置。 - **Shell 编程积累:** Shell 编程...

    Redhat Linux服务器配置实务.doc

    Redhat Linux 服务器配置实务涉及一系列的步骤,涵盖了操作系统安装、桌面环境设置、网络服务配置、数据库和Web服务器的安装以及应用的安装与调试。以下是这些步骤的详细说明: 1. **RedHat 7.2 安装**: - 分区...

    Nginx+KeepAlived+Tomcat负载架构

    - **简介**:KeepAlived是一种开源软件,主要用于实现Linux下的虚拟服务器集群。它提供了简单的故障转移机制,通过VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)实现服务的高可用性。 - **作用**:...

    运维142问不看一定后悔

    37. **nginx虚拟主机**:通过配置不同的server块,服务于多个域名。 38. **健康检查**:通过HTTP返回码、响应时间等指标判断后端服务状态。 39. **apache Worker与Prefork**:Worker采用多线程模型,Prefork为多...

Global site tag (gtag.js) - Google Analytics