公司服務器一直都是採用PHP環境搭建的株洲都市在線論壇作爲地方門戶網站,今天接到部門要求,需要另外多加入一個正規的門戶網站,論壇作爲附屬網站作爲給網友交流之用,這次的服務器改動比較大,最爲關鍵的是以前服務器只有Apache環境,目前公司開發出來的門戶網站是採用的SQL2005+.NET2.0環境,但是又不願意多增加一臺服務器的情況下,我只有硬着頭皮在一臺服務器上實現Apache+IIS共用80端口。
其他的SQL2005安裝等等都好說,關鍵就是兩個不同環境不同源碼的網站要共同佔用80端口,在百度查詢了很多資料都是模凌兩可,沒有什麼具體的解說,因爲百度搜索到的都是Apache獨立環境下的教程,而不是我目前服務器上APMServ5.2.6集成環境,所以有很大的出入,在研究了差不多4個小時的時間之後,總算是解決了這個問題,現在把我的解決方法公佈出來,希望更多的人能在應對其它特殊環境下的應用。
先說說我配置之前服務器的配置環境,APMServ5.2.6集成PHP環境:
Apache 2.2.9 [HTTP服務器]
Nginx 0.7.19 [HTTP服務器]
NetBox 2.8 Build 4128 [HTTP服務器+ASP腳本解釋引擎]
PHP 5.2.6 [PHP腳本解釋引擎]
MiniPerl 5.8 [Perl腳本解釋器]
Memcached 1.2.4 [key-value內存緩存系統]
MySQL 5.1.28 [MySQL數據庫服務器]
MySQL 4.0.26 [MySQL數據庫服務器]
phpMyAdmin 2.11.9.2 [MySQL數據庫在線管理工具]
eAccelerator 0.9.5.3 [PHP腳本加速引擎]
ZendOptimizer 3.3.3 [PHP腳本加速引擎]
OpenSSL 0.9.8h [HTTPS(SSL)安全傳輸協議]
第一步:安裝好SQL2005數據庫和IIS6.0(windows2003自帶),將IIS的端口改爲81端口(Apache環境以及佔用了80端口);
第二步:配置Apache環境,讓Apache能夠作爲代理訪問81端口;
(1)修改“D:\APMServ5.2.6\Apache\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
注:另外檢查httpd.conf文件下是否要包含httpd-vhosts.conf文件,如果下述文字前方有#,就把他去掉
- # Virtual hosts
- Include conf/extra/httpd-vhosts.conf
如圖:
(2)接着在“D:\APMServ5.2.6\Apache\conf\extra”的目錄下的httpd-vhosts.conf文件,添加apache和IIS下的虛擬主機信息:
IIS下的虛擬主機配置範例:
- <VirtualHost *:80>
- ProxyPreserveHost On
- ServerAdmin [email protected]
- ServerName www.zzccoo.com
- ServerAlias zzccoo.com *.zzccoo.com
- DefaultLanguage zh-CN
- AddDefaultCharset GB2312
- ProxyPass / http://www.zzccoo.com:81/
- ProxyPa***everse / http://www.zzccoo.com:81/
- </VirtualHost>
apache下的虛擬主機配置範例:
- <VirtualHost *:80>
- ServerAdmin [email protected]
- ServerName www.zhuzho.com
- ServerAlias zhuzho.com *.zhuzho.com
- DocumentRoot “d:/zhuzho”
- </VirtualHost>
記住IIS下應建立tcp端口爲81的同一域名網站,才能實現轉發。當然上述配置修改保存後,要重啓IIS和Apache才能生效。
大家可以看我網站實例:
http://bbs.zzccoo.com/ 是株洲都市在線論壇,是以搭建在PHP環境上的80端口
http://www.zzccoo.com/和http://www.zzccoo.com:81/是搭建在IIS環境上的81端口,兩個地址訪問的是同一個頁面