(转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容
from :http://www.cnblogs.com/wuyou/p/3455619.html
环境:
windows server 2003,IIS6服务器,Tomcat7服务器
域名有几个:
以下是使用IIS的域名:
http://www.formuch.com/
http://www.formuch.cn/
http://www.formuch.net/
要使用Tomcat的域名:http://www.huilianvisa.com/ http://huilianvisa.com/
问题:
该台VPS里面已经有好几个网站了(上面已给出),但是都是用IIS挂起来的。而我们开发了一个J2EE架构的网站,使用tomcat作为服务器。大家都知道,IIS既然已经用了80端口,那我的tomcat就不能用80端口了。这样一来,我们J2EE的网站必须在域名后加上8080作为域名了(http://www.huilianvisa.com:8080/),这显然不符合要求。
于是我从网上寻找资料,他们一部分人用的是 IIS与Tomcat的桥接器 解决问题的,但是我操作了几个小时都没有解决,于是我寻找另外一个解决方案,后来想到Nginx有一个反向代理的功能,能将请求转发到本地的另外一些服务器。于是问题的解决方案为:使用Nginx反向代理方式使IIS和Tomcat兼容起来。
步骤:
首先确认tomcat和IIS两个服务器没有准确无误的运行起来。
下载Nginx,版本只要在1.1以上基本都行。
①修改IIS的所有网站项目的端口,修改为81(只要不是80和跟其他端口不冲突都可),因为我们的nginx服务器要占用80端口。
②设置tomcat的配置文件:server.xml,打开:
重点在于配置红色部分:包含端口(82),监听的域名。(这里我已经把注释全去掉了,省事,这是整个server.xml文件)
|
<?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JasperListener" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <Service name="Catalina"> <Connector port="82" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="www.huilianvisa.com"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="www.huilianvisa.com" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <Context path = "" docBase = "d:/website/hlcg_war_exploded" /> </Host> </Engine> </Service> </Server> |
③来到nginx的conf目录,打开nginx.conf,对里面修改如下:
(这里主要是添加转发的域名,对于IIS我们全转发到对应域名加上81端口,对于tomcat的我们全加上82端口,其中Nginx监听80端口)
|
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #access_log logs/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; #这里是影院网站 server { listen 80; server_name www.formuch.com; location / { proxy_pass http://www.formuch.com:81; } } server { listen 80; server_name www.formuch.net; location / { proxy_pass http://www.formuch.net:81; } } server { listen 80; server_name www.formuch.cn; location / { proxy_pass http://www.huilianvisa.com:81; } } server { listen 80; server_name www.huilianvisa.com; location / { proxy_pass http://www.huilianvisa.com:82; } } server { listen 80; server_name huilianvisa.com; location / { proxy_pass http://www.huilianvisa.com:82; } } } |
Listen:Nginx监听的端口(80),这里不要改
server_name:Nginx监听的域名。
proxy_pass:要转发到的地址。
④打开IIS服务器,再打开Tomcat服务器,再打开Nginx服务器,访问对应的域名,即Nginx配置中的server_name,记得不需要加端口!因为Nginx会帮你访问这些网站。
整个配置就完成了。
(转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容的更多相关文章
- IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容
环境: windows server 2003,IIS6服务器,Tomcat7服务器 域名有几个: 以下是使用IIS的域名: http://www.formuch.com/ http://www.fo ...
- IIS和tomcat共用80端口
IIS和tomcat共用80端口 很多机器都需要同时使用tomcat和iis两个服务器以部署不同的网站,而解决共用80端口的问题也经常遇到,今天实际操作了一回,以下是具体步骤: 实现tomcat和ii ...
- IIS7和Tomcat7整合,即IIS7和Tomcat共用80端口
IIS7和Tomcat7整合,即IIS7和Tomcat共用80端口 背景: 最近公司有一个项目要上线,需要用到iis和tomcat整合,共用80端口.由于公司的数据都非常重要,只通过端口映射到外网的8 ...
- IIS Tomcat共享80端口
为什么有这种需求, 原因是这样的, 公司有一个Java的web项目,在另一台服务器A上,最近老板一时兴起,想把他合并到这台稳定点的服务器B上,服务器B上使用IIS来寄宿asp.net 网站, 怎么办呢 ...
- 前端解决跨域问题的终极武器——Nginx反向代理
提到代理,分为:正向代理和反向代理. 正向代理:就是你访问不了Google,但是国外有个VPN可以访问Google,你访问VPN后叫它访问Google,然后把数据传给你. 正向代理隐藏了真实的客户端. ...
- 使用apache和IIS,共用80端口的一个解决方案【转】
将apache设为使用80端口,IIS使用其它端口,比如81,然后将apache作为IIS的代理. 在httpd.conf里面,取消下面四行的注释: LoadModule proxy_module m ...
- 详解nginx 配置多个tomcat共用80端口
场景:项目1放在tomcat1中,项目2放在tomcat2中,两个tomcat放在同一台服务器上,需要共享80端口访问注意:这里和集群部署是不同的,集群部署是一个项目放在多个tomcat中.这里通过n ...
- tomcat 部署war,umask上传文件后无法通过nginx反向代理访问上传后的文件
Catalina.sh文件,把umask修改为 0022 即可. 引用:https://tomcat.apache.org/tomcat-8.5-doc/security-howto.html
- 利用IIS应用请求转发ARR实现IIS和tomcat整合共用80端口
现在网上流传的实现iis和tomcat共享80端口的方法是基于isapi_redirect插件实现的, 我的实现方法不同, 原理相似,具有更好的优点. 先说下基于isapi_redirect缺点,ja ...
随机推荐
- proxy_redirect参数的作用
Nginx的代理功能太完善了,我们看看proxy_redirect参数的作用. 案例说明: 要做一个html.aslibra.com的域名处理很多网站的html内容,当然是后端的服务器了,目录分析 h ...
- driver基础
驱动测试时,linux驱动常以模块方式插入内核.应包含头文件:linux/kernel.h,linux/module.h 设备驱动的一般结构:Soc(主芯片->设备控制器->外设引脚)-- ...
- IOS设计模式浅析之原型模式(Prototype)
原型模式的定义 “使用原型实例指定创建对象的种类,并通过复制这个原型创建新的对象”.最初的定义出现于<设计模式>(Addison-Wesley,1994). 简单来理解就是根据这个原型创建 ...
- 放苹果(整数划分变形题 水)poj1664
问题:把M个相同的苹果放在N个相同的盘子里.同意有的盘子空着不放,问共同拥有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 例子 : 1 7 3 ---------------8 ...
- vCenter初始化数据中心和集群
接着上一次的文档"7.vCeenter部署流程2",vcenter软件已经安装在2008上了,同时win2008上的和vmware相关的服务都已经启动,这里一定要检查以下: 打开服 ...
- CMake 简介与使用
cross platform make的缩写. 是一个比make更高级的编译配置工具,它可以根据不同平台.不同的编译器,生成相应的Makefile或者vcproj项目文件.通过编写CMakeLists ...
- Mysql事务-隔离级别
MYSQL事务-隔离级别 事务是什么? 事务简言之就是一组SQL执行要么全部成功,要么全部失败.MYSQL的事务在存储引擎层实现. 事务都有ACID特性: 原子性(Atomicity):一个事务必须被 ...
- jQuery EasyUI编辑DataGrid用combobox实现多级联动
我在项目中设计课程表的时候需要用到老师和分类之间的多级联动. 首先是一张效果图: 下面是实现的代码: <body> <script type="text/javascrip ...
- 怎么在Word中找MathType菜单
一些用户朋友在使用word的过程中,发现自己突然找不到MathType公式编辑器菜单项了,而这个时候又急着编写公式,所以会特别的着急.下面我们就来针对这个问题好好的给大家分析一下,并提供解决方案.请关 ...
- jquery中end()方法的解释
来源:http://www.jquery001.com/jquery-end-method.html 对于end()方法,jQuery文档是这样解释的:jQuery回到最近的一个"破坏性&q ...