Apache Http Server 解决不同域名共用服务器80端口问题
今天部署網(wǎng)站時,用戶突然說他們只有一臺服務(wù)器,一個公網(wǎng)IP,而且現(xiàn)在服務(wù)器上已經(jīng)有一個發(fā)布中的網(wǎng)站(顯然80端口已被占用),讓我們想想辦法怎么樣才能部署我們的項目到他們服務(wù)器上,而且使用同一臺服務(wù)器,同一個公網(wǎng)IP,第一次遇到這種需求,開始覺得肯定實現(xiàn)不了,但后來百度下,竟然真有方法解決這種問題,強大的代理,發(fā)現(xiàn)代理可以實現(xiàn)nginx,Apache Http Server,或者直接在IIS上進行修改配置(不通用,不考慮),大體看了下,感覺Apache Http Server使用起來非常簡單,就決定使用它啦,首先在本地進行了一次模擬環(huán)境測試,過程中也遇到了一些問題,現(xiàn)在把配置過程記錄下來,供遇到同樣問題的朋友參考。
一、前期準(zhǔn)備:
1、安裝Apache Http Server:
我下載的是 httpd-2.2.25-win32-x86-no_ssl.msi(很簡單,百度搜下Apache Http Server)
2、倆個模擬服務(wù)器,我這邊使用的是IIS一個、和tomcat一個(Windows下IIS是現(xiàn)成的,而且可以模擬不同服務(wù)器,雖然沒啥意思,嘿嘿)
3、修改HOST文件 (C:\Windows\System32\drivers\etc\HOSTS)
增加倆項(模擬不同域名)
127.0.0.1 www.aaa.com
127.0.0.1 www.bbb.com
二、修改配置文件
現(xiàn)在準(zhǔn)備工作就算完成啦,現(xiàn)在開始進行修改Apache Http Server配置文件(httpd.conf、httpd-vhosts.conf)
1、httpd.conf 位置:C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\httpd.conf
將下面五處的注釋去掉
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
2、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服務(wù)器和tomcat服務(wù)都啟動起來,從上面的配置來看,可以看出我的倆個服務(wù)的端口分別為8083和8084
運行起來之后,通過訪問http://www.aaa.com:8083 和 http://www.bbb.com:8084 倆個網(wǎng)站訪問正常,配置結(jié)束
看起來確實比較簡單,但有幾個地方需求注意的
1、IIS服務(wù)器默認占用了80端口,安裝Apache Http Server時如果啟動不成功,請修改IIS服務(wù)器的端口為其他端口,我這里使用的是8084
2、ProxyPass / http://www.aaa.com:8083/ 這句后面一定要加上“/”,這個問題我找了一天才解決,如果不加上的話,即使網(wǎng)站能夠訪問到,也會顯示不正常,會報類似的錯誤
[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代理進行設(shè)置80端口共用的配置,反正我是正常運行啦,在過程中也看了網(wǎng)上的例子,有些是明顯錯誤,根本跑不起來,而且同一篇文章被轉(zhuǎn)發(fā)了N次,這里吐下槽,沒驗證過的東西放到網(wǎng)上,真是害人啊!
總結(jié)
以上是生活随笔為你收集整理的Apache Http Server 解决不同域名共用服务器80端口问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: link2sd在部分Android 4.
- 下一篇: 诺基亚7 android 9,诺基亚7