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

搭建全能服务器

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

结构图:

123

 

大致思路:

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 frogchou@126.com

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 frogchou@126.com

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   其他端口同理。

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注