結合apache和tomcat實現多域名、多埠繫結
系統:windowsxp
C:\WINDOWS\system32\drivers\etc\hosts檔案 新增
127.0.0.1 www.abc.com
127.0.0.1 www.efg.com
這樣可以測試www.abc.com,www.efg.com兩個域名指向本地伺服器。
注:儲存後, ping www.abc.com
#測試修改是否有效。
2、配置多個tomcat例項,並假定http://localhost:8080部署abc專案,http://localhost:8090部署efg專案。注:配置多個tomcat例項,注意埠不衝突,同時最好在tomcat的conf/server.xml配置檔案中,修好host節點的內容,使專案檔案獨立於tomcat目錄。配置如下:
2.1http://localhost:8080
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:\project\abc" reloadable="true"
caseSensitive="false" debug="0"></Context>
</Host>
2.2http://localhost:8090
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:\project\efg" reloadable="true"
caseSensitive="false" debug="0"></Context>
</Host>
3、配置Apache
3.1修改 Apache2.2\confhttpd.conf,將以下三項的註釋符"#"去掉
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
3.2修改Apache2.2\conf\extrahttpd-vhosts.conf檔案
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.abc.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
<VirtualHost *:80>
ServerName www.efg.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8090/
ProxyPassReverse / http://localhost:8090/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
注意:在配置apache虛擬機器時,如果轉發的url地址帶有子目錄的,ProxyPass後面的子目錄名稱跟轉發的url字尾的子目錄名稱要相同。如:
ProxyPass /xx1 http://localhost:8090/xx1
此時在網站上就要輸入http://www.abc.com/xx1才能正確訪問。
4、啟動多個tomcat例項,重啟Apache。
在網址中分別輸入http://www.abc.com和http://www.efg.com即可看到效果。祝好運!