1. 程式人生 > >Apache本機不同埠多站點配置:httpd-vhosts.conf

Apache本機不同埠多站點配置:httpd-vhosts.conf

環境:Apache2.2.9,Resin-3.1.6,Win Server 2003
1.解壓Resin至任意目錄,我的是D:;
2. 安裝Apache,具體操作下一步、下一步即可,其中要配置的地方是需要你填寫網站名等資訊,這裡可以不用管它,全部填寫localhost,預設埠 80;
3.進入Resin目錄執行setup.exe,勾選Web Servers中的Apache複選框,並在後面的輸入框中填寫你的Apache安裝目錄,我的是D:/Apache2.2;
4. 開啟 Apache的配置檔案(D:/Apache2.2/conf/httpd.conf,我的),找到這行:LoadModule caucho_module "D:/resin-3.1.6/win32/apache-2.0/mod_caucho.dll",就是你的Resin安裝目錄中與Apache整合 的外掛模組,不過它預設的是apache-2.0目錄下的,使用這個模組,在啟動Apache伺服器時會出錯,必須使apache-2.2目錄下的 mod_caucho.dll,修改後為:LoadModule caucho_module "D:/resin-3.1.6/win32/apache-2.2/mod_caucho.dll";
5.找到這行:#ServerName localhost:80,將前面的#號去掉(不知道為什麼它預設把它註釋了);
6.找到這行:<Directory "D:/Apache2.2/htdocs">,改為<Directory />,如果不改Apache將不會去找虛擬主機配置檔案中對應的目錄(如果你用localhost訪問);
7.將Options Indexes FollowSymLinks,目錄列表,安全設定為將Indexes去掉,不顯示目錄列表;
8.將#i nclude conf/extra/httpd-vhosts.conf前面的#號去掉,開啟虛擬主機配置;
至此httpd.conf配置結束.
下 面對httpd-vhosts.conf進行配置.
httpd- vhosts.conf在"D:/Apache2.2/conf/extra" 目錄下,將"NameVirtualHost *:80"改為"NameVirtualHost localhost:80",確定為你本機(測試時),如果正式啟用Internet服務,就把它換成你的伺服器的IP地址吧,下面的是虛擬主機基本配 置:
Xml程式碼
<VirtualHost localhost:80> 
    ServerName localhost  
         DocumentRoot E:/workspace/sshDemo/WebRoot  
    Alias /test E:/workspace/test/WebRoot  
    ResinConfigServer 127.0.0.1 6800  
</VirtualHost> 

<VirtualHost localhost:80>
 ServerName localhost
         DocumentRoot E:/workspace/sshDemo/WebRoot
 Alias /test E:/workspace/test/WebRoot
 ResinConfigServer 127.0.0.1 6800
</VirtualHost>


各個元素說明:
<VirtualHost localhost:80>:localhost為網站域名,80埠可以不寫,如果改成別的埠則需要寫上,同時還要修改httpd.conf中 的監聽埠號:Listen 80
ServerName:網站域名,同上;
DocumentRoot:網站程式主目錄;
Alias: 網站中其他的WEB應用的名稱及目錄位置;
ResinConfigServer:Resin伺服器監聽埠,我這裡是本地 為:127.0.0.1,如果有多臺機器作為伺服器,修改成對應IP地址即可;
以上就將虛擬主機的配置完成了,一個網站對應一 個<VirtualHost xxx.xxx.com></VirtualHost>標記;
Resin配置:
Resin 配置檔案:D:/Resin-3.1.6/conf/resin.conf,開啟並搜尋"8080"對應的就是HTTP埠,將HTTP埠註釋,因為我 們已經不需要Resin提供WEB服務了,只要讓它監聽本的埠就行,本地監聽埠位置大概在149,這樣一行"<server id="" address="127.0.0.1" port="6800"/>",同樣如果Apache裝在別的機器上,這裡就改成這臺機器的IP地址了,否則Apache會找不到Resin的埠 的;
如果想使用多JVM來實現多機器的功能實現:
一個JVM一個配置檔案;
每個配置檔案的監聽埠不能相同,要 改<server id="" address="127.0.0.1" port="6800"/>中的port值,6801,6802,...以此類推,Apache與之保持一致;
將Resin註冊成為 Windows服務:
命令列切換至Resin主目錄,執行httpd -install 完成預設resin服務安裝,httpd -remove完成預設resin服務解除安裝,使用多JVM時就不能這樣安裝,如下:
httpd -install-as 服務名 -conf 對應resin配置檔案;
httpd -remove-as 服務名
然後啟動Apache與Resin,這時會發現Resin服務只 能啟動一個,為什麼呢,因為Resin在註冊為Windows服務的時候都有一個自己監控的功能,它會佔用一個埠:6600,在resin.conf中 大概121行的位置可以看到:"<watchdog-port>6600</watchdog-port>",所當該埠被佔 用,resin服務便失敗了,修改之,為方便可以這樣來修改:本地監聽埠6800,自己監聽:6600,6801:6601,方便,記憶快.
這 樣就完成了Apache與Resin實現多網站的應用了;