Apache Http Server 解決不一樣域名共用服務器80端口問題

今天部署網站時,用戶忽然說他們只有一臺服務器,一個公網IP,並且如今服務器上已經有一個發佈中的網站(顯然80端口已被佔用),讓咱們想一想辦法怎麼樣才能部署咱們的項目到他們服務器上,並且使用同一臺服務器,同一個公網IP,第一次遇到這種需求,開始以爲確定實現不了,但後來百度下,居然真有方法解決這種問題,強大的代理,發現代理能夠實現nginx,Apache Http Server,或者直接在IIS上進行修改配置(不通用,不考慮),大致看了下,感受Apache Http Server使用起來很是簡單,就決定使用它啦,首先在本地進行了一次模擬環境測試,過程當中也遇到了一些問題,如今把配置過程記錄下來,供遇到一樣問題的朋友參考。nginx

1、前期準備:tomcat

一、安裝Apache Http Server:服務器

我下載的是 httpd-2.2.25-win32-x86-no_ssl.msi(很簡單,百度搜下Apache Http Server)markdown

二、倆個模擬服務器,我這邊使用的是IIS一個、和tomcat一個(Windows下IIS是現成的,並且能夠模擬不一樣服務器,雖然沒啥意思,嘿嘿)測試

三、修改HOST文件 (C:\Windows\System32\drivers\etc\HOSTS)網站

增長倆項(模擬不一樣域名)
127.0.0.1 www.aaa.com
127.0.0.1 www.bbb.comspa

2、修改配置文件代理

如今準備工做就算完成啦,如今開始進行修改Apache Http Server配置文件(httpd.conf、httpd-vhosts.conf)code

一、httpd.conf 位置:C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\httpd.confssl

將下面五處的註釋去掉

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
Include conf/extra/httpd-vhosts.conf

二、httpd-vhosts.conf 位置:C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf

增長如下配置

> <VirtualHost *:80>
> ProxyPreserveHost On
> ServerAdmin aaa@qq.com
> ServerName www.bbb.com
> ProxyPass / http://www.bbb.com:8084/
> ProxyPassReverse / http://www.bbb.com:8084/
> SetEnv force-proxy-request-1.0.1
> SetEnv proxy-nokeepalive 1 
> </VirtualHost>
> > <VirtualHost *:80>
> ProxyPreserveHost On
> ServerAdmin bbb@qq.com
> ServerName www.aaa.com
> ProxyPass / http://www.aaa.com:8083/
> ProxyPassReverse / http://www.aaa.com:8083/
> SetEnv force-proxy-request-1.0.1
> SetEnv proxy-nokeepalive 1 
> </VirtualHost>

下面將IIS服務器和tomcat服務都啓動起來,從上面的配置來看,能夠看出個人倆個服務的端口分別爲8083和8084
運行起來以後,經過訪問http://www.aaa.com:8083http://www.bbb.com:8084 倆個網站訪問正常,配置結束

看起來確實比較簡單,但有幾個地方需求注意的
一、IIS服務器默認佔用了80端口,安裝Apache Http Server時若是啓動不成功,請修改IIS服務器的端口爲其餘端口,我這裏使用的是8084
二、ProxyPass / http://www.aaa.com:8083/ 這句後面必定要加上「/」,這個問題我找了一天才解決,若是不加上的話,即便網站可以訪問到,也會顯示不正常,會報相似的錯誤

[Mon Jul 20 16:34:49 2015] [error] [client 127.0.0.1] proxy: DNS
lookup failure for: 127.0.0.1:8084iis-85.png returned by /iis-85.png,
referer: http://www.aaa.com/

以上就是我使用的Apache Http Server代理進行設置80端口共用的配置,反正我是正常運行啦,在過程當中也看了網上的例子,有些是明顯錯誤,根本跑不起來,並且同一篇文章被轉發了N次,這裏吐下槽,沒驗證過的東西放到網上,真是害人啊!

相關文章
相關標籤/搜索