Apache和Tomcat公用80端口,原理主要利用apache的代理。
需求:服務器已經存在了很多PHP項目,現在我新寫的javaWeb項目要部署到同一服務器中新安裝的Tomcat里面去,並且可以用域名進行訪問。
因為用域名再加8080端口訪問有點low,所以就去做了如下幾步改變:
第一步:啟用apache的代理模塊(修改httpd.conf配置)
1.首先我在Apache\conf目錄下面找到httpd.conf文件,
2.打開該文件依次找到以下幾行代碼(它們可能不是挨着的,用Ctrl+F):
#LoadModule proxy_module modules/mod_proxy.so #LoadModule proxy_connect_module modules/mod_proxy_connect.so #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so #LoadModule proxy_http_module modules/mod_proxy_http.so
3.然后把每行代碼前面的“#”號去掉,這樣就打開了apache的代理模塊了
第二步:然后建立一個虛擬主機
還是在httpd.conf添加以下標簽(找個自己覺得舒服的位置.0.0)
<VirtualHost *:80> ServerName www.a.com ProxyPass / http://www.a.com:8080/ ProxyPassReverse / http://www.a.com:8080/ </VirtualHost>
www.a.com 處是你的域名,localhost,IP都可以
注意:
tomcat的server.xml文件里:
1.還是用原來的8080端口
2.Host標簽中的要加上Context標簽,里面寫好項目名
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> <Context path="" docBase="項目名" debug="0" reloadable="true" caseSensitive="true" /> </Host>
其他辦法,開拓思維:
其他軟件共用80端口也是同理的,比如:apache和IIS兩種軟件,
實在不行,還有其他辦法:
1.nginx也可以同理實現,缺點:如果安裝nginx之前,服務器就有了其他項目,那么需要刪除掉站點,安裝好了再重新建立站點,怕不是在逗我玩?
2.IIS下建立站點?這種方法只是寫一個html,我試了許久,不知道這個htm該放在哪里,所以沒成功
3.有錢人,再買個服務器,哈哈哈
感謝:
解決方法靈感來源於這兩篇文章