Apache中,同一IP使用多域名對應多個網站的方法

 如果您的Apache的WEB服務器僅有一個ip ,卻需要服務多個域名(實際是多個網站的服務)。那麼,實現的方法是什麼呢?本文將告訴你答案。(你還可以通過對本文中的代碼進行修改,來實現不同域名使用相同IP、相同端口或者相同IP、不同端口的功能)。

   比如你希望使用同一臺web服務器來同時運行www.deerol.com與www.163.com,那麼你可以在Apache的配置文件httpd.conf中(一般位於/etc/httpd/conf或/usr/local/apache/conf目錄下),添加以下內容:

 以下是服務器配置文件(Server configuration)httpd.conf中需要添加的信息

# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
 DocumentRoot /www/deerol_com
 ServerName www.deerol.com

 # Other directives here
 #配置域名的目錄訪問權限
 <Directory "/www/deerol_com">
      Options Indexes FollowSymLinks
      allow from all
 </Directory>
</VirtualHost>

<VirtualHost *:80>
 DocumentRoot /www/163_com
 ServerName www.163.com

 # Other directives here
 #配置域名的目錄訪問權限
 <Directory "/www/deerol_com">
      Options Indexes FollowSymLinks
      allow from all
 </Directory>
</VirtualHost> 

·以上代碼應該加入到Apache配置文件httpd.conf中的類似代碼的後面;

    ·DocumentRoot表示網站根目錄,ServerName表示需要服務的域名,80表示Apache監聽80端口

    在你正確寫入以上代碼之後,apache會就用戶訪問的域名對應配置中的ServerName選擇合適的web目錄輸出html代碼。以上設置中第一項(即ServerName www.deerol.com)是默認選項。若用戶訪問所指定的域名不符合所有條目時採用默認項,即指向www.deerol.com。


在配置時可能遇到的場景:

1.使用域名加端口訪問

如果需要帶端口訪問(這種情況很少,一般會在測試時用到)如:www.domain.com:8081 這時在配置<VirtaulHost> 後,還需要添加對該端口的監聽Listen 8081


2.如果服務器上除了Apache服務外還裝了IIS(運行asp,asp.net程序),Tomcat(運行java,jsp程序)服務該如何配置?

一般的我們會把Apache默認爲80端口,IIS可以設置爲81端口,Tomcat設置爲8080端口。假設有一jsp程序,在服務器本地配置時我們可以通過http://localhost:8080/document訪問。那如何配置通過域名訪問到該地址呢?

<VirtualHost *:80>
 ProxyPreserveHost On
 ServerName yourdomain.com
 DirectoryIndex index.jsp
 ProxyPass / http://localhost:8080/KBoom/
 ProxyPassReverse / http://localhost:8080/KBoom/
</VirtualHost>
這裏我們注意到使用了代理訪問。首先開啓代理支持ProxyPreserveHost On,然後再配置正向代理和反向代理 ProxyPass /  http://localhost:8080/KBoom (kboom爲虛擬目錄)  

發佈了295 篇原創文章 · 獲贊 8 · 訪問量 112萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章