1. 程式人生 > >搭建全能服務器(tomcat,IIS,PHP使用80端口共存)

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

搭建全能服務器 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 個人網站

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