这么一个需求:同一台服务器上有两个应用,如
http://hostA:8080/services和
http://hostA:8080/admin外部访问时,需要从不同的域名访问,如
http://services.host.com和
http://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://blog.163.com/ccbobo_cat/blog/static/320994622009326115641438
分享到:
相关推荐
NULL 博文链接:https://sandy902724921-163-com.iteye.com/blog/1808232
Apache2 VirtualHost Python是一个非常简单且功能强大的应用程序,用于在Apache Server上创建Virtuals Host。 Apache VirtualHost Python是使用Python3创建的,与您的操作系统非常兼容。
apache2-virtualhost 将虚拟主机文件添加到apache2 sudo curl -o apache2-virtualhost.sh ...
apache2-create-virtualhost 该脚本为apache2 Web服务器创建了附加的virtualhost配置。 接受2个参数,网站目录,网站域名。 只需将这两个参数添加到下面的代码片段的末尾即可。在下面运行此代码以执行脚本以启动...
### Apache中Virtual Host虚拟主机配置及Rewrite参数详解 #### 一、Virtual Host虚拟主机配置 **1.1 概念介绍** 在Apache服务器中,Virtual Host(虚拟主机)技术允许在同一台物理服务器上托管多个不同的网站或Web...
Apache VirtualHost Transfer Counter是一组文件,可让您快速轻松地监控服务器上http bandwitch的利用率。 它也可以为您提供有关VirtualHosts的一些统计信息。
本文将详细记录一下如何在单台服务器上,利用apache的virtualhost(虚拟主机)来搭建多个不同的web站点,并且每个站点独立管理自己的session,下面话不多说了,来一起看看详细的介绍吧。 开发环境 先说下我各项开发...
适用于Apache 2.4.7的VirtualHost管理器 由于我在虚拟机上测试了各种开源自托管应用程序,因此决定创建一个用bash编写的小脚本,该脚本可帮助我配置初始设置。 我已经在Ubuntu 14.04 LTS上对其进行了测试,它也应该...
这可以通过配置虚拟主机(Virtual Hosts)来实现,其中一种方法是使用基于主机头的名称虚拟主机(Name-based Virtual Hosting)。这种方法允许我们在同一个端口上为不同的域名配置多个网站。 #### 基本概念 1. **...
这通常通过使用Apache的虚拟主机(VirtualHost)功能实现。虚拟主机允许在一个单一的服务器上运行多个独立的网站,每个网站对应一个不同的域名或子域名。以下是详细的配置步骤和注意事项: 1. **启用VirtualHost...
每个虚拟主机都使用 `<VirtualHost>` 块来定义。例如,对于 `www.website1.com` 和 `website1.com` 的配置如下: ```apache NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /var/www/html/website1 ...
要避免这种情况,需要保留一个默认的`VirtualHost`配置,不指定任何IP地址和端口,这样Apache会将所有未匹配的请求转发给这个默认的虚拟主机。例如: ```apacheconf <VirtualHost *:80> DocumentRoot /var/...
### 使用Apache POI进行Excel导入导出操作 在IT领域,数据处理是极其重要的环节之一,而Excel作为数据处理工具中的佼佼者,在各种应用场景中都占有举足轻重的地位。对于Java开发者而言,能够有效地读取、写入Excel...
$ sudo cp /path/to/virtualhost.sh /usr/local/bin/virtualhost 对于全球快捷方式 $ cd /usr/local/bin $ wget -O virtualhost https://raw.githubusercontent.com/RoverWire/virtualhost/master/virtualhost.sh $ ...
这样,Apache将同时监听这三个端口,但为了使每个端口对应不同的网站,需要使用`<VirtualHost>`容器来指定每个端口对应的网站配置。 #### 三、创建虚拟主机 虚拟主机允许在同一台服务器上托管多个独立的网站,每个...
apache-jmeter测压工具生成的文档,用jmeter导入即可,
根据给定文件的信息,本文将详细介绍Apache的三种虚拟主机配置方式:基于名称的虚拟主机(Name-based Virtual Hosts)、基于IP地址的虚拟主机(IP-based Virtual Hosts)以及基于端口的虚拟主机(Port-based Virtual...
这个错误是由于Apache无法找到任何与NameVirtualHost指令匹配的VirtualHost配置。 首先,让我们深入理解一下`NameVirtualHost`和`VirtualHost`这两个概念: 1. **NameVirtualHost**: 这个指令告诉Apache启用基于...