搭建全能服務器(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端口共存)