搭建全能服务器(tomcat,IIS,PHP使用80端口共存)

搭建全能服务器

这是一个很常见的场景,要在同一台服务器上部署多种语言开发的程序,并且每种语言处于各种原因要放在不同web容器中去运行,而且都要通过80端向外提供服务,例如:在同一台服务器上部署.net程序,java程序,php程序,都通过80端口向外提供web服务。处于这种场景就只能搭建全能服务器了。

结构图:

大致思路:

Apache 端口设置为:80

IIS  所有服务端口都设置为:8081

Tomcat 所有服务端口都设置为:8080

使用apache反向代理功能代理访问本地的IIS(8081)和Tomcat(8080)

  • 安装apache。官网下载httpd-2.4.23-x64-vc14-r3,解压cmd进入bin目录,执行命令:

httpd.exe -k install -n apache

安装为Windows服务,名称为:apache

  • 配置apache服务。例如apache安装在了D:\application_software\Apache那么:

<1> 找到D:\application_software\Apache\conf\httpd.conf文件,用记事本打开,找到:Define SRVROOT 这一项,将其右方的值改为 绝对路径(硬盘路径)

<2> 保证以下模块加载

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

<3>继续找,找到:Listene 80

若你的80端口被占用(可在cmd下用命令netstat -a查看),则将80端口改为别的,请在请在frogchou个人网站中搜索《80端口那点事》查找解决方案。

<4>修改Apache24\conf\extra  下的httpd-vhosts  文件

例如:

<VIRTUALHOST *:80>

ServerAdmin [email protected]

ServerName iis.frogchou.com

DefaultLanguage zh-CN

AddDefaultCharset GB2312

ProxyPreserveHost On

ProxyRequests Off

ProxyPass / http://localhost:8081/

ProxyPassReverse / http://localhost:8081/

ErrorLog logs/iis.frogchou.com_error_log

</VIRTUALHOST>

<VIRTUALHOST *:80>

ServerAdmin [email protected]

ServerName tomcat.frogchou.com

DefaultLanguage zh-CN

AddDefaultCharset GB2312

ProxyPreserveHost On

ProxyRequests Off

ProxyPass / http://localhost:8080/

ProxyPassReverse / http://localhost:8080/

ErrorLog logs/tomcat.frogchou.com_error_log

</VIRTUALHOST>

需要注意的是配置ServerName 、ProxyPass 和ProxyPassReverse

ServerName:用户通过那个域名访问服务器的。

ProxyPass:代理的路径,可以是本地,也可是其他服务器地址

ProxyPassReverse:后端服务器的地址,同上,可以防止后端服务器HTTP重定向造成的绕过反向代理的问题

2、IIS :修改IIS的所有应用的端口    为 8081

这里要注意防火墙的映射,如果防火墙没有将8081端口映射出去,在IIS中绑定域名时就不要选择任何IP地址了,选择* 即可,否则就要将相应IP路径下的防火墙做8081端口映射。

3、Tomcat :

修改Tomcat的所有应用的端口    为 8080

在Tomcat中配置虚拟目录并绑定域名   在tomcat\conf 中找到 server.xml

添加:

<Host name=”test1.tomcat.frogchou.com:8080″ appBase=”webapps” unpackWARs=”true” autoDeploy=”true” xmlValidation=”false” xmlNamespaceAware=”false”>

<Context path=”” docBase=”/test1″/>

</Host>

<Host name=”test2.tomcat.frogchou.com:8080″ appBase=”webapps” unpackWARs=”true” autoDeploy=”true” xmlValidation=”false” xmlNamespaceAware=”false”>

<Context path=”” docBase=”/test2″/>

</Host>

启动顺序建议:先启动apache    再启动IIS 和Tomcat

注意:启动apche,tomcat,或者IIS时可能出现端口被占用导致无法启动的问题,请参考

http://www.frogchou.com/?p=152   其他端口同理。

更多内容请移步:http://www.frogchou.com   个人网站

时间: 2024-12-25 19:04:20

搭建全能服务器(tomcat,IIS,PHP使用80端口共存)的相关文章

tomcat部署项目,80端口被占,解决方案

第一个解决方案: 最大的可能:被System占了. 解决Windows Server 2008 System进程占用80端口 输入netstat -ano 可以看到80端口被PID4占用,于是打开任务管理器-进程-查看,选择列,勾选PID 可以看到pid 4 的被NT kernel & System 占用 该进程是Http.sys.它是http API的驱动组件,Http栈服务器.如果该端口被Http.sys占用,说明一些正在使用http.sys的应用程序在运行.这就是阻止Apache运行的原因

国内域名国内服务器,不备案解决80端口不开放方法

咳咳咳咳,刚发现,小嘚瑟,嘿嘿 准备:一个域名,一个服务器,一个ngrok,不清楚的可以参考我前两篇文章: 1,nogok相关:http://www.cnblogs.com/yanan7890/p/7096378.html安装好ngrok 2,域名相关:http://www.cnblogs.com/yanan7890/p/8119711.html start:在ngrok下配置相关参数(域名.端口) 3.登录阿里云控制台添加解析(119.23.65.20是wiphk.ngrok.org) 4.去

利用IIS应用请求转发ARR实现IIS和tomcat整合共用80端口

现在网上流传的实现iis和tomcat共享80端口的方法是基于isapi_redirect插件实现的, 我的实现方法不同, 原理相似,具有更好的优点. 先说下基于isapi_redirect缺点,java 项目作为iis下的一个虚拟目录存在, iis下的项目使用顶级域名, tomcat下的项目只能作为二级目录访问; 例如iis下项目 使用www.iisproject.com访问, 则tomcat下的项目只能 www.iisproject.com/tomcatproject 这么访问, 如此变得不

IIS7和Tomcat7整合,即IIS7和Tomcat共用80端口

IIS7和Tomcat7整合,即IIS7和Tomcat共用80端口 背景: 最近公司有一个项目要上线,需要用到iis和tomcat整合,共用80端口.由于公司的数据都非常重要,只通过端口映射到外网的80端口,其它端口都不开放. 我部署的环境是Win2008R2_x64, IIS7和JDK1.7.0_51,tomcat7.0.59 一.关闭Windows2008中IE增强的安全配置. 服务器管理器----配置IE ESC----管理员和用户都选择禁用 .如图. 二 .IIS安装 安装: 1.   

apache与IIS共用80端口冲突解决方法

如果同一台电脑安装了apache和iis,会提示80端口冲突,如何解决apache与iis 80端口冲突的问题呢,并且同时使用apache和iis 将apache设为使用80端口,IIS使用其它端口,比如81,然后将apache作为IIS的代理. 在httpd.conf里面,取消下面四行的注释: LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connec

tomcat在ubuntu14下使用80端口

此文章只说明如何打开80端口具体原理方面这里不做过多探讨. 在ubuntu10以后的版本 ubuntu 禁用了普通用户使用1-1024端口.这样当我们直接更改tomcat的server.xml 中的端口是不能正常启用80端口的.在catalina.out 里我们会发现以下错误信息. SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-bio-80"] SEVERE: Failed t

非root用户无法启动监听80端口的Tomcat

一.问题 网站绑定域名后直接通过域名访问使用的是80端口,因此tomcat须监听80端口.而为了安全起见tomcat一般不用root身份运行,因此需要以普通用户来运行监听80端口的root.此时就会启动失败,报没有权限,因为只有root身份才能监听1024以内的熟知端口. 二.解决 (以下未经验证) There are a few different solutions to work around this: Install and configure Apache or nginx as a

收藏:解决其它程序与IIS共享80端口的四个方法

今天写的程序也占用80端口,而 IIS也占用 80端口,我在我的一张网卡上分配了两个IP地址,但是测试发现:只要IIS启动后,我写的程序就无法使用80端口,到网上搜索了一下,终于找到了解决办法: 使用:Httpcfg.exe 方法一:IIS5,多IP下共存,IIS为192.168.0.1,apache为192.168.0.2c:\Inetpub\Adminscriptscscript adsutil.vbs set w3svc/disablesocketpooling true该命令反馈如下di

IIS允许外部请求非80端口设置

转载至:https://blog.csdn.net/kj89493677/article/details/2123791 解决方法: 一.如果IIS网站是80端口:点击右下角"电脑"图标 -> 点击"打开网络和共享中心" -> 在弹出界面左下角点击"Windows 防火墙"-> 点击左上角"允许程序或功能通过Windows防火墙"-> 勾选"万维网服务(HTTP)" -> 点击